0
我有三個選項卡,每個選項卡擴展活動並實現View.OnClickListener 當我選擇某個選項卡並單擊某個按鈕時,實現到SomeTabActivity的OnClickListener不起作用。爲什麼? 我需要做什麼來創建我的活動? 每當我選擇一些標籤,我需要開始新的活動?不同標籤內的按鈕
我的代碼:
//主活動
public class TripoidActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
final Resources res = getResources();
createTabA(tabHost, res);
createTabB(tabHost, res);
createTabC(tabHost, res);
}
}
//選項卡A活性
public class TabAActivity extends Activity implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
buttonAddItem = (Button) findViewById(R.id.btAddItem);
buttonAddItem.setOnClickListener(TabAActivity.this);
}
@Override
public void onClick(View v) {
//do something (show a toast msg)
}
}
//主要佈局XML
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<include layout="@layout/tab_a" />
<include layout="@layout/tab_b" />
<include layout="@layout/tab_c" />
</FrameLayout>
</LinearLayout>
</TabHost>
爲什麼buttonAddItem.setOnClickListener(TabAActivity.this); - 爲什麼不只是'這個'? – John3136 2012-02-22 00:53:57
是一回事。但這種方式「TabAActivity.this」是最容易看到你所指的。 – 2012-02-22 01:23:38
讓我的大腦沿着「我不知道這是否與班上的某些事情做了某些事情,而不是我目前所在的班級的實例」這樣的句子。如果你修改東西,也有可能會破壞多態性的風險。不過,我不認爲這是問題:-( – John3136 2012-02-22 02:39:20