2011-03-10 74 views
1

在Android中的新項目中,我在main.xml文件中有一個帶有TextView和TabWidget的佈局。將TextView傳遞給Android中的意圖

我的選項卡菜單啓動使用意圖不同的活動,在這些活動中,我需要做的:

TextView title = (TextView)findViewById(R.id.titolo); 
     title.setText("Home"); 

,但同時如果我嘗試做其他活動,我得到我可以做到這一點只在主要活動一個空指針例外..什麼問題?

在清單中我插入了其他這樣的活動,這是問題嗎?

<activity android:name="List1"></activity> 

我tryed使用

LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View row = li.inflate(R.layout.main, null); 
TextView title = (TextView)row.findViewById(R.id.titolo); 

我沒有得到任何錯誤,但與ID必須存在於你的所有活動佈局的標題並沒有改變

+0

那麼你如何爲textview設置值?你可以把該代碼(的getview方法)。 – 2011-03-11 05:09:58

回答

1

一個TextView。由於Android無法找到視圖,因此您將收到NullPointerException。另外請確保您正在使用setContentView正確設置onCreate中的佈局。

+0

我無法添加setContentView(R.layout.main);我重新打開了選項卡中的佈局,並且出現錯誤,其他活動不使用佈局..我該怎麼辦? – frx08 2011-03-10 17:35:24

+0

如果您使用findViewById,所有活動都需要有佈局。對不起,我沒有通過重新打開標籤中的佈局來獲得你的意思。在我的回答中,我指的是/ res/layout中的佈局文件。 – Abhinav 2011-03-10 17:40:11

+0

如果我在該選項卡中包含的活動中調用setContentView(R.layout.main),則會在該選項卡中顯示包括選項卡布局在內的所有佈局,以便佈局選項卡以「遞歸方式」打開 – frx08 2011-03-10 18:31:30

1

帶此ID(titolo)的TextView必須是您使用此代碼的Activity佈局的子代。

TextView title = (TextView)findViewById(R.id.titolo); 
if(title != null) 
    title.setText("Home"); 
else 
    Log.e(TAG, "title TextView not found in current layout); 

如果找你想實現某種形式的動作條,嘗試創建一個「actionbar.xml」(含TextView id爲「TITOLO」),例如,包括它所有的佈局。

1

你的清單應作爲

<activity android:name=".List1"></activity> 

List1活動

setContentView(set_layout_which_contains_titolo) and then use 

TextView title = (TextView)findViewById(R.id.titolo); 
     title.setText("Home"); 

但是,如果你的工作可以做,以發送字符串(其中包含文本視圖的值)調用活動。 它會工作。