我在我的應用程序中使用了tabHost,但在其中一個視圖中(對應於其中一個選項卡)我有一個按鈕,必須帶我到另一個活動,然後再使用另一個佈局。問題是:我如何獲得這個新的佈局可以繼續訪問標籤?或者更好的說,我如何在FrameLayout中加載這個新的佈局?TabHost中的新佈局
在這裏,我已經上傳我想要做的事:提前http://imageshack.us/photo/my-images/541/exampleu.png/
謝謝!
Pd:我是Android新手,也許有更好的方法來實現我的purpouse而不使用TabActivity。我願意接受任何建議。
編輯:所以我決定按照我的建議使用片段。現在,我有以下幾點:
- AplicationActivity延伸FragmentActivity
- ClientActivity延伸片段
- SettingsActivity延伸片段
- DataClientActivity延伸片段
及以下佈局:
- activity_aplicacion
- activity_client
- activity_settings
- activity_data_client
的activity_aplicacion.xml有TabHost,FrameLayout裏和TabWidget並從這些我可以去ClientActivity和使用SettingsActivity標籤。
在ClientActivity中,我有一個名爲「new」的按鈕,當我按下此按鈕時,我想要訪問 DataClientActivity。所以,在ClientActivity我已經TE以下:
public void onClickNew(View view){
DataClientActivity fragmentDataClient = new DataClientActivity();
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.tabcontent,fragmentDataClient , "fragmentDataClient ");
ft.addToBackStack(null);
ft.commit();
}
但是當我運行我的應用程序,我得到了folling錯誤:
05-04 21:55:04.780:E/AndroidRuntime(7515):JAVA .lang.IllegalStateException:找不到方法onClickNew(視圖)在活動課com.nrAplicationActivity爲的onClick處理程序上的視圖類android.widget.Button ID爲「buttonNew」
所以我有點搞不清分辯現在。爲什麼我應該在AplicationActivity中使用onClickNew方法,而不是在ClientActivity中使用按鈕?
EDITED 2:我發現這種情況的解決方案:
公共類ClientActivity擴展片段{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.activity_clientes, container, false);
**// Register for the Button.OnClick event
Button b = (Button)view.findViewById(R.id.buttonNew);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(Tab1Fragment.this.getActivity(), "OnClickMe button clicked", Toast.LENGTH_LONG).show();
Log.e("onClickNuevo2 ", "inicio");
DataClientActivity fragmentDataClient= new DataClientActivity();
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.tabcontent,fragmentDataClient, "fragmentDataClient");
ft.addToBackStack(null);
ft.commit();
}
});**
return view;
}
}
我只需要到的onClick監聽器註冊到我的按鈕,我ClientActivity內。現在每一個完美的作品!非常感謝Divya Motiwala :)並感謝以下鏈接:http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/#comment-410
問題是我正在使用API級別8,只要我知道Fragmens是在API級別11中引入的。所以我想我會遇到這個問題? – kiduxa 2013-05-04 23:24:32
我接受你的建議,因爲我發現有一個Android庫支持,所以我改變我的TabActivity到FragmentActivity和活動碎片。我編輯了我的問題,請閱讀。 – kiduxa 2013-05-05 02:13:12