2016-11-19 51 views
2

我有活動,其中有5個片段ViewPager和工具欄我已經作出一個按鈕,我想執行的按鈕點擊操作不同的選擇選項卡fragment.I有有:如何在ViewPager中的不同片段中點擊工具欄中的按鈕?

usertextView_done= (TextView) getActivity().findViewById(R.id.actionbar_tv_icon_done); 

但它創造的所有片段或全部選項卡的單個實例。

+0

此工具欄+按鈕是否存在於活動? – SAM

+0

是在活動有兩個,我能夠從片段訪問,但它創建所有片段的單個實例 –

+0

從您可以訪問此按鈕的片段粘貼代碼(點擊代碼) – SAM

回答

0

我假設按鈕和工具欄存在於父活動中。 所以這裏有一個簡單的方法:

這個想法是在活動中創建一個靜態整數,並使用其各自的數字在片段中更新它,這樣您可以跟蹤哪些片段當前可見。 例子:

//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... 
} 
1

如果敬酒從每一個片段出現在單擊時,那麼你可以做以下。

- 在您的活動

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"); 
}); 

每個片段做到這一點,讓我知道。

+0

嗨山姆我添加了屏幕排序的我的頁面,這裏完成按鈕在工具欄中可用,並且viewPagger有五個片段我想單擊不同片段的用餐按鈕。 –

相關問題