2014-10-26 87 views
0

調用函數我試圖調用此函數public void arrowClick()如何從其他片段類

是我的主要片段內public class CounterMain extends Fragment implements View.OnClickListener{

,這個片段擴展android.support.v4.app.Fragment

我想調用這個函數另一個Custmoe對話框片段

public class CustmoeDialog extends DialogFragment { 

我試過((CounterMain)getActivity()).arrowClick();

,但我不能使用它,它說:android.support.v4.app.Fragment cannot be cast to my.example.CounterMain

CounterMain x = new CounterMain(); x.arrowClick(); 

它使我的應用程序停止工作時,我把它叫做

任何幫助嗎?

回答

3

您可以通過這種方式

((YourActivityClassName)getActivity()).yourPublicMethod(); 

和活動,你可以通過這種方式

FragmentManager fm = getSupportFragmentManager();//if added by xml 
YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentById(R.id.your_fragment_id); 
fragment.yourPublicMethod(); 

,如果你通過代碼添加的片段,當你添加使用代碼字符串直接調用呼叫活動的方法你的片段,用findFragmentByTag代替:

YourFragmentClass fragment = (YourFragmentClass)fm.findFragmentByTag("yourTag"); 
0

首先,你不能從ACTI施放VITY到片段 但是從全球經濟活動投射到你的活動

或者創建接口,並實現它在活動

然後從活動中施展它的片段接口

關於這個問題:

看到這裏的正確方法如何實現

Basic Communication between two fragments

Entreco的回答