java - addListenerOnButton 在 Android Studio 的片段中不起作用
问题描述
这是片段代码,我在这里尝试了各种方法来实现按钮侦听器,但它们都不起作用。我尝试过 addListenerOnbutton、OnClick 方法,还尝试在 mainactivity 中使用此代码。但它们都没有真正起作用。任何建议都可以帮助我很多。
public class tab2 extends Fragment implements View.OnClickListener{
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
addListenerOnButton();
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_tab2, container, false);
}
void addListenerOnButton(){
/*b1 = getView().findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Error has occurred");
}
});*/
/* b1 = getView().findViewById(R.id.b1);
b3 = getView().findViewById(R.id.b3);
b4 = getView().findViewById(R.id.b4);
b5 = getView().findViewById(R.id.b5);
b6 = getView().findViewById(R.id.b6);
b1.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
b6.setOnClickListener(this);*/
}
public void Activity1()
{
Intent intent = new Intent(getContext(),Activity1.class);
startActivity(intent);
}
....... until Activity19().....
@Override
public void onClick(View v)
{
/*switch (v.getId()){
case R.id.b1:
Activity1();
break;
case R.id.b3:
Activity3();
break;
case R.id.b4:
Activity4();
break;
case R.id.b5:
Activity5();
break;
case R.id.b6:
Activity6();
break;
}*/
}
}
解决方案
尝试这样的事情
public class BlankFragment extends Fragment implements View.OnClickListener {
private Button b1, b2;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
b1 = view.findViewById(R.id.b1);
b2 = view.findViewById(R.id.b2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_blank, container, false);
}
private void callActivity(Class activity) {
startActivity(new Intent(getContext(), activity));
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.b1:
callActivity(FirstActivity.class);
break;
case R.id.b2:
callActivity(SecondActivity.class);
break;
}
}
推荐阅读
- text - 如何查找具有特定字体和字体大小的文本的位长
- razor - 访问索引视图中的枚举项
- python - 使用现有变量名称创建数据框名称
- android - 如何制作搜索范围内特定蓝牙设备的应用程序?
- scala - 不确定这种类型的错误来自哪里
- swift - 如何在 Swift 和 Xcode 中保存对象数组(带有图像变量)?
- python - Python SQLite,存储具有多个值的键的问题
- python - 如何让 PyCharm 在 Python 控制台中显示脚本实际使用的全局变量?
- django - PyInstaller 在 Ubuntu 上构建的 Django 可执行应用程序找不到静态文件
- django-rest-framework - 如何在 django rest 中使用来自另一个序列化程序的序列化程序保存对象?