Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 事件侦听器在片段中不工作_Android_Android Fragments_Android Fragmentactivity - Fatal编程技术网

Android 事件侦听器在片段中不工作

Android 事件侦听器在片段中不工作,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,当我点击按钮1按钮时,我看不到任何土司。我禁用了EditText事件,即使这样我也看不到它。 类“View1”是pagerView的一部分。 public class View1 extends Fragment{ ImageView album; Button b1; public View1(){} public void OnCreate(Bundle SavedInstanceState) { super.onCreate(Sav

当我点击按钮1
按钮时,我看不到任何
土司。我禁用了
EditText
事件,即使这样我也看不到它。 类“View1”是pagerView的一部分。

public class View1 extends Fragment{

     ImageView album;
     Button b1;

    public View1(){}

   public void OnCreate(Bundle SavedInstanceState) {
         super.onCreate(SavedInstanceState);

                b1.findViewById(R.id.button1);

                b1.setOnClickListener(new OnClickListener(){
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(getActivity().getApplicationContext(), "asdasd", Toast.LENGTH_SHORT).show();     
                        }
                    });
   }   

        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            return inflater.inflate(R.layout.view1, container, false);
  }

我建议您查看Android生命周期图,查找
片段

您所谓的
OnCreate
方法没有被调用,因为它不是
片段的
OnCreate
回调。为了避免此类错误,请使用带有适当方法的
@Override
注释,以确保覆盖该方法,而不仅仅是创建新方法

即使您的方法会被调用,您的代码也会抛出一个
NullPointerException
,因为您没有初始化
按钮
(它甚至不是在
onCreate
之后调用
onCreate视图
回调时创建的)。您的代码应该如下所示:

public class View1 extends Fragment {

    ImageView album;
    Button b1;

    @Override  
    public void OnCreate(Bundle SavedInstanceState) {
         super.onCreate(SavedInstanceState);
    }   

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view1, container, false);
        b1 = (Button) v.findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener(){
             @Override
             public void onClick(View v) {
                Toast.makeText(getActivity(), "asdasd", Toast.LENGTH_SHORT).show();     
             }
        });
    }
        return v;
}

我建议您查看Android生命周期图,查找
片段

您所谓的
OnCreate
方法没有被调用,因为它不是
片段的
OnCreate
回调。为了避免此类错误,请使用带有适当方法的
@Override
注释,以确保覆盖该方法,而不仅仅是创建新方法

即使您的方法会被调用,您的代码也会抛出一个
NullPointerException
,因为您没有初始化
按钮
(它甚至不是在
onCreate
之后调用
onCreate视图
回调时创建的)。您的代码应该如下所示:

public class View1 extends Fragment {

    ImageView album;
    Button b1;

    @Override  
    public void OnCreate(Bundle SavedInstanceState) {
         super.onCreate(SavedInstanceState);
    }   

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view1, container, false);
        b1 = (Button) v.findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener(){
             @Override
             public void onClick(View v) {
                Toast.makeText(getActivity(), "asdasd", Toast.LENGTH_SHORT).show();     
             }
        });
    }
        return v;
}

您可以将您的侦听器移动到onCreateView或onActivityCreated中,然后应该可以工作

您可以将您的侦听器移动到onCreateView或onActivityCreated中,然后应该可以工作