我有一個TabActivity
其中3個標籤對所有3個標籤重複使用相同的Activity
。如何使用TabActivity中3個不同標籤的不同輸入相同的活動
我通過額外的手段(intent.putextras()
)區分其現在的問題是,當我們彼此,我通過意圖通過額外的價值來了錯誤的切換選項卡,我將顯示每個選項卡
的內容爲第二個標籤。
據我瞭解,當我們創建FirstTab時,唯一的Activity被創建,所以內容按照它被繪製。
當我們添加了secondTab意圖
,並再次存儲額外的價值,當我們創造了第三個選項卡的意圖過度寫額外的價值。
因此,當我們切換到第二個標籤時,我收到第三個標籤額外的值,因此向用戶顯示錯誤的內容。
這裏是代碼,
public class ContentsTab extends TabActivity implements OnTabChangeListener{
public static final String _ID = "_id";
public static final int ID_1 = 1;
public static final int ID_2 = 2;
public static final int ID_3 = 4;
private TabHost mTabHost;
private static Intent newIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
newIntent = new Intent(this, ShowContents.class);
mTabHost = getTabHost();
newIntent.putExtra(_ID, ID_1);
mTabHost.addTab(mTabHost.newTabSpec(INT_EXT_MEM)
.setContent(newIntent)
.setIndicator("one"));
newIntent.putExtra(_ID, ID_2);
mTabHost.addTab(mTabHost.newTabSpec(EXT_MEM)
.setIndicator("two")
.setContent(newIntent));
newIntent.putExtra(_ID, ID_3);
mTabHost.addTab(mTabHost.newTabSpec(INT_MEM)
.setContent(newIntent)
.setIndicator("three"));
mTabHost.setCurrentTabByTag("one");
mTabHost.setOnTabChangedListener(this);
}
@Override
public void onTabChanged(String tabId) {
//This is only coming once the Tab is changed
Log.d(TAG, "onTabChanged arg0 = "+tabId);
}
}
showcontents.class
public class ShowContents extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
int mId_ContentType;
mId_ContentType = extras != null? extras.getInt(_ID): -1;
updateData(mId_ContentType);
}
}
在此圖示中,當 用戶按下TAB1,ShowContents.class應該接收1作爲額外設備和相同的與TAB2和TAB3 ,但接收到以下數值 Tab1 - 1 Tab2 - 4(正確值應爲2) Tab3 - 4
Tab1和Tab3的值正確。
是否有任何替代方法將正確的額外參數發送到Tab2?使用相同的類Activity
?
請幫我
感謝您的時間:)
在此處添加清單 – 2015-06-17 06:32:23