Android 事件侦听器在片段中不工作
当我点击按钮1Android 事件侦听器在片段中不工作,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
按钮时,我看不到任何土司。我禁用了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中,然后应该可以工作