我有活動,其中有5個片段ViewPager和工具欄我已經作出一個按鈕,我想執行的按鈕點擊操作不同的選擇選項卡fragment.I有有:如何在ViewPager中的不同片段中點擊工具欄中的按鈕?
usertextView_done= (TextView) getActivity().findViewById(R.id.actionbar_tv_icon_done);
但它創造的所有片段或全部選項卡的單個實例。
我有活動,其中有5個片段ViewPager和工具欄我已經作出一個按鈕,我想執行的按鈕點擊操作不同的選擇選項卡fragment.I有有:如何在ViewPager中的不同片段中點擊工具欄中的按鈕?
usertextView_done= (TextView) getActivity().findViewById(R.id.actionbar_tv_icon_done);
但它創造的所有片段或全部選項卡的單個實例。
我假設按鈕和工具欄存在於父活動中。 所以這裏有一個簡單的方法:
這個想法是在活動中創建一個靜態整數,並使用其各自的數字在片段中更新它,這樣您可以跟蹤哪些片段當前可見。 例子:
//in activity class
public static int CURRENT_FRAGMENT = 1; //set this to your first fragment that is being viewed
現在,你必須更新從恢復的每個片段的整數。
//in each fragment add this code
@Override
public void onResume(){
ParentActivity.CURRENT_FRAGMENT = 2; //in case you're in fragment 2
}
最後,在您的活動,補充一點:
//in actvity class
button .setOnClickListener(new OnClickListener() {
if(CURRENT_FRAGMENT ==1){
//do things for fragment 1
} else if (CURRENT_FRAGMMENT ==2){
//do things for fragment 2
}
etc...
}
如果敬酒從每一個片段出現在單擊時,那麼你可以做以下。
- 在您的活動
public void calledFromFragment(String tag)
{
if(tag.equalsIgnorecase("fragment-1-tag")
{
// TODO : for fragment 1
}
else if(tag.equalsIgnorecase("fragment-2-tag"){
// TODO : for fragment 2
}
.
.
and so on
}
----在您的片段
textView_done.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {
((Activity)context).calledFromFragment("fragment-1-tag");
});
每個片段做到這一點,讓我知道。
嗨山姆我添加了屏幕排序的我的頁面,這裏完成按鈕在工具欄中可用,並且viewPagger有五個片段我想單擊不同片段的用餐按鈕。 –
此工具欄+按鈕是否存在於活動? – SAM
是在活動有兩個,我能夠從片段訪問,但它創建所有片段的單個實例 –
從您可以訪問此按鈕的片段粘貼代碼(點擊代碼) – SAM