我不知道发生了什么,但我有个例外,应用程序冻结。
主要活动:

public class MainAcitivty extends FragmentActivity implements OnClickListener
{
    // ...

    public interface OnItemSelectedListener
    {
        public void onItemSelected(int resourceId);
    }

    OnItemSelectedListener mCallback;

    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.my_imageView)
        {
            mCallback.onItemSelected(R.id.my_imageView);
        }
    }
}

碎片:
public MyFragment extends Fragment implements MainAcitivty.OnItemSelectedListener
{
   @Override
   public void onItemSelected(int resourceId)
   {
       Log.i("INFO", "Selected: " + resourceId);
   }
}

如果单击所选按钮,应用程序将冻结,并引发以下异常:
e/androidruntime(21649):致命异常:main
e/androidruntime(21649):java.lang.nullpointerexception
E/AndroidRuntime(21649):在
Copy.MaultActudio.OnCutter(MaunActudia. Java:53)
E/AndroidRuntime(21649):在
Android .view .View .PrPultCutlook(View .java:4232)
E/AndroidRuntime(21649):在
Auto.View查看$PrimultCalk.Run(view .java:17298)
E/AndroidRuntime(21649):在
Addio.Os.Halder-HelpCeleBub(HANDL.java:615)
E/AndroidRuntime(21649):在
Addio.Os.Halder-Debug消息(处理程序:Java:92)
E/AndroidRuntime(21649):在安卓.OS.Looper-Loor(Looper-Java:137)
E/AndroidRuntime(21649):在
安卓(主:Java:4921)
E/AndroidRuntime(21649):在
Java.Lang.Eng.Simult.FutoEnnistic(本机方法)
E/AndroidRuntime(21649):在
Java.Lang.Eng.Simult.Voice(方法.java:511)
E/AndroidRuntime(21649):在
COM.Android .No.OS.ZyGoTynIt $方法和AgsCalal.Run(ZyGoTynIt.java:1027)
E/AndroidRuntime(21649):在
COM.Android .No.OS.ZyGoTyIn.Mault(ZyGoTynIt.java:794)
e/androidruntime(21649):在dalvik.system.nativestart.main(本地
方法)

最佳答案

inMyActivity添加方法
public void addlistener(mainacitive.onitemselectedlistener侦听器){
mcallback=侦听器;
}
并在onViewCreated()MyFragment中调用此方法。
((MyActivity) getActivity).addListener(this);

关于android - Android与Fragment交流 Activity ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18889877/

10-12 04:23