3 개의 탭이 있고 각각 하나가 Activity를 확장하고 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
같은 것입니다. 그러나 이런 식으로 "TabAActivity.this"는 당신이 참조한 것을 보는 것이 가장 쉽습니다. –
"이 수업이 내가 현재 수업중인 수업의 인스턴스가 아니라 수업에서 뭔가를하는지 궁금합니다." 또한 사안을 수정하면 다형성을 파괴 할 위험이 있습니다. 그래도 나는 이것이 문제라고 생각하지 않는다 :-( – John3136