2015-08-24 72 views
0

應用程序停止當我給輸入試圖調用虛擬方法android.text.Editable android.widget.EditText.getText()

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
     // Buttons and Text Fields 
    private Button btnAdd,btnSub,btnDiv,btnMul; 
    private EditText etFirst,etSecond; 
    private TextView tvresult; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     init(); 
    } 
    private void init() 
    { 
    // Button Id's 
    btnAdd=(Button)findViewById(R.id.btnAdd); 
    btnSub=(Button)findViewById(R.id.btnSub); 
    btnMul=(Button)findViewById(R.id.btnMulti); 
    btnDiv=(Button)findViewById(R.id.btnDivide); 
    btnAdd.setOnClickListener(this); 
    btnSub.setOnClickListener(this); 
    btnDiv.setOnClickListener(this); 
    btnMul.setOnClickListener(this); 
    } 
    @Override 
    public void onClick(View v) { 
     //Operations 
     String num1=etFirst.getText().toString(); 
     String num2=etSecond.getText().toString(); 
     switch(v.getId()) 
     { 
      case R.id.btnAdd: 
       int addition=Integer.parseInt(num1)+Integer.parseInt(num2); 
       tvresult.setText(String.valueOf(addition)); 
       break; 
      case R.id.btnSub: 
       int sub=Integer.parseInt(num1)-Integer.parseInt(num2); 
       tvresult.setText(String.valueOf(sub)); 
       break; 
      case R.id.btnMulti: 
       int multiply=Integer.parseInt(num1)* Integer.parseInt(num2); 
       tvresult.setText(String.valueOf(multiply)); 
       break; 
      case R.id.btnDivide: 

        int div = Integer.parseInt(num1)/Integer.parseInt(num2); 
        tvresult.setText(String.valueOf(div)); 
        break; 
     } 
    } 
    } 

回答

0

您還沒有初始化etFirst後點擊添加按鈕或其他任何按鈕& etSecond。 添加到您的init()方法:

etFirst = (EditText) findViewById(R.id.etFirst); 
etSecond = (EditText) findViewById(R.id.etSecond); 
+0

非常感謝。它現在有效 –

相關問題