2010-06-22 45 views
0

我想在我的android應用程序中顯示一個對話框,其中佈局中的某些TextView需要在運行時設置內容。如何在Android對話框中編輯TextViews的內容?

雖然顯示對話框本身沒有任何問題,但通過TextView.setText(String)訪問TextView會使應用程序崩潰。

這是我走到這一步:

dialog = new Dialog(this); 

dialog.setContentView(R.layout.dialog); 
dialog.setTitle("my dialog"); 

dialog.show(); 

TextView tv; 
tv = (TextView) findViewById(R.id.title); 
tv.setText("bkjadsjbk"); 

雖然這工作得很好沒有最後3行,運行具有的TextView-東西,代碼崩潰我的應用程序。

有沒有什麼辦法解決這個問題?

回答

1

如果您可以發佈錯誤日誌以便我們理解,那將會很好。

我猜想,這是發生,因爲它坐在那個對話框打開的實際佈局文件中的textview。因此可能會出現空指針異常。

要明確告訴它搜索您正在使用的對話框佈局中的視圖,請爲textview執行此操作。

TextView tv = (TextView) dialog.findViewById(R.id.title); 
tv.setText("your text..."); 

如果這不起作用,然後發佈您的錯誤日誌。

+0

它的工作 - 謝謝! – xenonite 2010-06-22 17:25:50

1

您正在致電findViewById()在您的Activity。您的DialogTextViews。在Dialog上撥打findViewById(),你可能會有更好的運氣。

0

變化

TextView tv = (TextView) dialog.findViewById(R.id.title); 
tv.setText("your text..."); 

final TextView tv = (TextView) dialog.findViewById(R.id.title); 
    tv.setText("your text...");