[問題] fragment & tabhost 的顯示更新請教

作者: fantasy15 (隨風漂流的雲)   2016-08-10 11:58:26
我有一個app程式,採用fragment做分頁、tabhost做切換、程式碼都獨立在各fragment
Main Activity
#這邊是fragment根tabhost的運用方式。
tabHost=(FragmentTabHost) findViewById(R.id.tabHost);
tabHost.setup(this, getSupportFragmentManager(),
android.R.id.tabcontent);
Resources res= getResources();
TabHost.TabSpec tab1= tabHost.newTabSpec("tab1");
TabHost.TabSpec tab2= tabHost.newTabSpec("tab2");
TabHost.TabSpec tab3= tabHost.newTabSpec("tab3");
tab1.setIndicator(res.getString(R.string.tab1String),null);
tab2.setIndicator(res.getString(R.string.tab2String),null);
tab3.setIndicator(res.getString(R.string.tab3String),null);
tabHost.addTab(tab1, fragment1.class, null);
tabHost.addTab(tab2, fragment2.class, null);
tabHost.addTab(tab3, fragment3.class, null);
Java Class fragment1
內有幾個功能有寫到 ↓↓↓↓↓↓↓↓↓↓↓↓
三個按鈕按下後各別對,EditText變更EditText.setEnable或字型字體顏色
#listview使用這個方式可以讓listview更新
當listview內數值有變化時,直接呼叫下面兩行進行更新與顯示
listview_fragment1.setAdapter(adapter_tab1);
((BaseAdapter) listview_fragment1.getAdapter()).notifyDataSetChanged();
布局檔
activity_main fragment_layout_1 #內含下面四項
Btn_Text1、Btn_Text2、Btn_Text3
EditText1、EditText2、EditText3
listview_fragment1
但是我將按鈕後變更EditText.setEnable跟字型字體的函式,採用onClick(View v)呼叫
同時在onCreateView內宣告,所有的EditText、Button、ListView
只有程式開啟的第一次會有效果,第二次按鈕就沒有變更的效果了
把跟set相關的指令#掉之後,
按鈕的功能都可以正常執行,就是可以計算跟讀寫DB,但是加上set做按鈕控制
就不會更新按鈕的狀態了
按鈕1 => disable text1、text1變灰變小、disable btn1
按鈕2 => disable text2、text2變紅變大、disable btn2
按鈕3 => enable text1 text2 btn1 btn2、disable btn3、全部按鈕跟text變回白色大字
第一次按下按鈕1會關掉按鈕1同時會變灰變小,
但是再按下按鈕3,按鈕1不會開啟,顏色也不會變回白色大字
想請教一下fragment 的用法裡面有沒有像listview可以呼叫notifyDataSetChanged();
來讓EditText、Button的狀態跟設定進行更新顯示?
感謝各位前輩們的指教,
一個剛從SE被逼著轉APP Coding的可憐責任制IT...
作者: paulku (蒼木浩介.改)   2016-08-10 16:59:00
用OnClickListener如何?btn.setOnclickListener(new Button.OnClickListener(){ [email protected] onClick*/ });這些關鍵字夠你找CODE來看了android button onclicklistener
作者: silence5105 (Silence)   2016-08-13 05:33:00
listview 可以查一下 recyclerview
作者: a1275647 (iphone 10)   2016-08-17 19:58:00
你的fragment 是view 要分別呼叫各頁需要把程式寫在各view 裡即可

Links booklink

Contact Us: admin [ a t ] ucptt.com