首页 > 解决方案 > 添加 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);
    }
};

标签: javaandroid

解决方案


  1. 对象声明位置错误

它应该在 setContentView 下面

    EditText first = findViewById(R.id.firstInput);
    EditText second = findViewById(R.id.secondInput);
    EditText 结果 = findViewById(R.id.result);

  1. 按钮尚未添加到布局中
    添加 = 新按钮(此);
    addContentView(add, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

注意:这是不切实际的,除非您想创建动态布局,否则您应该在布局 xml 中添加它

  1. 按整数设置文本的警告问题

从:

    结果.setText(r);

至:

    result.setText(String.valueOf(r));


推荐阅读