代码之家  ›  专栏  ›  技术社区  ›  Arnab

应用程序正在崩溃[重复]

  •  -1
  • Arnab  · 技术社区  · 6 年前

    我正在学习android。每次我运行应用程序时,它都会崩溃。我似乎找不到任何错误。需要帮助。

    这是主代码。

    主要活动。Java语言

    package com.example.arnab.myfirstapplication;
    
            import android.support.v7.app.AppCompatActivity;
            import android.app.Activity;
            import android.os.Bundle;
            import android.view.View;
            import android.widget.Button;
            import android.widget.EditText;
            import android.widget.TextView;
    
    public class MainActivity extends Activity implements View.OnClickListener {
    
        Button btnAdd = (Button)findViewById(R.id.btnAdd);
        EditText num1 = (EditText)findViewById(R.id.num1);
        EditText num2 = (EditText)findViewById(R.id.num2);
        TextView result = (TextView)findViewById(R.id.result);
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btnAdd.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            if(v == btnAdd){
                int n1 = Integer.parseInt(num1.getText().toString());
                int n2 = Integer.parseInt(num2.getText().toString());
                int sum = n1 + n2;
                result.setText(Integer.toString(sum));
            }
        }
    
        @Override
        public void onPointerCaptureChanged(boolean hasCapture) {
    
        }
    }
    

    非常感谢您的帮助。我被困在这个阶段。无论我做什么,应用程序都会崩溃。

    使现代化 我不知道不可能使用 findViewById 之前 setcontentview . 当时我的逻辑还不清楚。对此感到抱歉。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Suraj Vaishnav    6 年前

    你不能打电话 findViewById 或方法块之外的任何其他方法。

    btnAdd = (Button)findViewById(R.id.btnAdd);
    num1 = (EditText)findViewById(R.id.num1);
    num2 = (EditText)findViewById(R.id.num2);
    result = (TextView)findViewById(R.id.result);
    

    在之后添加这些代码 setContentView 在里面 onCreate 并从顶部删除所有初始化。

        2
  •  1
  •   Syed Hamza Hassan    6 年前

    试试这个

     package com.example.arnab.myfirstapplication;
    
        import android.support.v7.app.AppCompatActivity;
        import android.app.Activity;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;
        import android.widget.EditText;
        import android.widget.TextView;
    
     public class MainActivity extends Activity implements View.OnClickListener 
     {
    
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    Button btnAdd = (Button)findViewById(R.id.btnAdd);
    EditText num1 = (EditText)findViewById(R.id.num1);
    EditText num2 = (EditText)findViewById(R.id.num2);
    TextView result = (TextView)findViewById(R.id.result);
    
        btnAdd.setOnClickListener(this);
    }
    
    @Override
    public void onClick(View v) {
        if(v == btnAdd){
            int n1 = Integer.parseInt(num1.getText().toString());
            int n2 = Integer.parseInt(num2.getText().toString());
            int sum = n1 + n2;
            result.setText(Integer.toString(sum));
        }
    }
    
    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
    
    }
    }