java - 添加 OnclickListener 后,我的 Android 应用程序崩溃
问题描述
我尝试使用 Java 以及显然是 Android Studio 构建一个简单的 Android 应用程序。添加 OnClickListener 后,应用程序在模拟器上不断崩溃。
public class MainActivity extends AppCompatActivity {
EditText first = findViewById(R.id.firstInput);
EditText second = findViewById(R.id.secondInput);
EditText result = findViewById(R.id.result);
private Button add;
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
clicked();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
add = new Button(this);
add.setOnClickListener(onClickListener);
};
void clicked(){
int i = Integer.parseInt(first.getText().toString());
int z = Integer.parseInt(second.getText().toString());
int r = i + z;
result.setText(r);
}
};
解决方案
- 对象声明位置错误
它应该在 setContentView 下面
EditText first = findViewById(R.id.firstInput); EditText second = findViewById(R.id.secondInput); EditText 结果 = findViewById(R.id.result);
- 按钮尚未添加到布局中
添加 = 新按钮(此); addContentView(add, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
注意:这是不切实际的,除非您想创建动态布局,否则您应该在布局 xml 中添加它
- 按整数设置文本的警告问题
从:
结果.setText(r);
至:
result.setText(String.valueOf(r));
推荐阅读
- shell - 使用 PowerShell 仅导出 .mp4 文件扩展名
- java - JTable 限制为 32 行
- sql-server - 数据不存在时如何插入一行
- php - 如何在 Laravel 中回显 Artisan::call() 的输出?
- python - 我将如何遍历字典列表并将另一个 for 循环应用于列表中的每个项目?
- excel - 如何查看 Excel 工作簿中的底层代码?
- mysql - Confluent JDBC 源连接器的问题
- python - 如何在 omxplayer 中播放随机播放的视频列表
- scala - 在 Scala 中,是否有一种简单的方法可以根据函数的结果获取不同的元素列表?
- c# - 如何根据条件设置GridView绑定字段的值