2011-12-24 13 views
0

私は、アンドロイド用のGUIアプリケーションを開発中です。私は突然、単純な仕事で警戒していたときにすべてがうまくいっていた: 私は活動がある。内側に、私はリストビューを持っています。私がしたいのは、ListViewのアイテムがクリックされたときです。このポジションに関する詳細情報を含むダイアログを開きます。さて、ダイアログを表示するのは簡単ですが、問題は私がf.eを変更することができないということです。タイトル。どうして?ここに私のコードは次のとおりです。AlertDialogレイアウト要素 - アクセス方法

public class SzukajActivity extends Activity { 
private ListView searchResultsListView; 
private String DB[] = {"Blah", "Bleh", "Boing", "Quing", "Something"}; 
private ArrayList<String> searchResults = new ArrayList<String>(); 
private EditText searchNameEditText; 
private ArrayAdapter<String> searchListViewAdapter; 
private TextView prowadzacyName; 
private AlertDialog prowadzacyDialog; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    LayoutInflater searchFactory = LayoutInflater.from(this); 
    final View searchView = searchFactory.inflate(R.layout.search, null); 
    setContentView(searchView); 

    // prowadzacySite Dialog 
    LayoutInflater prowadzacySiteFactory = LayoutInflater.from(this); 
    final View prowadzacyDialogView = prowadzacySiteFactory.inflate(R.layout.prowadzacy_site, null); 
    prowadzacyName = (TextView) findViewById(R.id.prowadzacyname); 
    //prowadzacyName.setText("a KUKU!"); 
    AlertDialog.Builder prowadzacyDialogBuilder = new AlertDialog.Builder(this); 
    prowadzacyDialogBuilder.setTitle("Prowadzacy") 
         .setCancelable(false) 
         .setView(prowadzacyDialogView) 
         .setPositiveButton("Zapisz się", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           dialog.cancel(); 
          } 
         }) 
         .setNegativeButton("Zakoncz", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           dialog.cancel(); 
          } 
         }); 
    prowadzacyDialog = prowadzacyDialogBuilder.create(); 

    searchResultsListView = (ListView) findViewById(R.id.searchKurczeBladeView); 
    searchListViewAdapter = new ArrayAdapter<String>(this, R.layout.spotkanialistitem, searchResults); 
    searchResultsListView.setAdapter(searchListViewAdapter); 
    searchResultsListView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      prowadzacyName = (TextView) findViewById(R.id.prowadzacyname); 
      if(prowadzacyName == null) Toast.makeText(SzukajActivity.this, "BOOOOM!", Toast.LENGTH_SHORT).show(); 
      //prowadzacyName.setText("A KUKU!"); 

      prowadzacyDialog.show(); 
     } 
    }); 
    searchNameEditText = (EditText) findViewById(R.id.searchName); 
    searchNameEditText.setOnKeyListener(new OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       searchResults.clear(); 
       for(int i = 0; i < 5; ++i) 
       { 
        if(DB[i].contains(searchNameEditText.getText())) 
        { 
         searchResults.add(DB[i]); 
        } 
       } 
       if(searchResults.size() == 0) 
        Toast.makeText(SzukajActivity.this, "Nie znaleziono odpowiadających prowadzących", Toast.LENGTH_SHORT).show(); 
       searchListViewAdapter.notifyDataSetChanged(); 
       return true; 
      } 
      else 
       return false; 
     } 
    }); 

} 
} 

直接問題はonItemClick機能では、私はダイアログのレイアウトからTextViewあるprowadzacyNameにアクセスしたいということです。私はsetContentView(searchView)と設定しているので、常にnullになります。それは私の活動のレイアウトなので、私はそれを行います。

これらの要素にアクセスする方法はありますか、それとも私が欲しいものを得るための方法はありますか? (私はダイアログが他の活動であることについて考えたが、それは私には不気味な音 - ?!あらゆる可能なダイアログのための別のアクティビティ:P)

答えて

3

を与えるが、あなたは

を使用しましたこの場合の使用

prowadzacyName = (TextView)searchView.findViewById(R.id.prowadzacyname); 

に子ビューにアクセスしたい場合は、私はこれがかもしれないと思う

final View searchView = searchFactory.inflate(R.layout.search, null); 
    setContentView(searchView); 

あなたの問題を解決してください。

2
prowadzacyName = (TextView) prowadzacyDialogView.findViewById(R.id.prowadzacyname); 

ショットに私の知識を1として

+0

ああ私の神様、それはとても簡単でした:大変ありがとうございます、あなたを気にして申し訳ありません;) – dontgonearthecastle

関連する問題