2014-11-02 41 views
1

Android应用程序不工作,应用程序不幸停止。代码错在哪里?编辑文本整数

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final EditText edittext1 = (EditText) findViewById(R.id.editText1); 
    final Button button1 = (Button) findViewById(R.id.Button01); 
    final TextView tw = (TextView) findViewById(R.id.textView1); 
    final int valueint = Integer.parseInt(edittext1.getText().toString()); 

    button1.setOnClickListener(new OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

      tw.setText(Integer.toString(20*valueint)); 
     } 
    }); 


} 

代码是否为垃圾?

int valueint = Integer.parseInt(edittext1.getText().toString()); 
+0

显示我们堆栈跟踪 – Hellboy 2014-11-02 21:31:53

+0

[的Integer.parseInt()] [1]的方法可如果给定的字符串不是一个解析的整数抛出异常。您应该检查LogCat输出以查看发生异常的位置,并通过调试来查看原因。 [1]:http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String) – 2014-11-02 21:33:52

+1

您是否有editText的默认值?如果editText为空,则在尝试解析它时,您的应用程序会崩溃。 – 2014-11-02 21:33:59

回答

1

您正尝试在create上使用空的int值。它可以在EditText中使用一些数字,但是当它为空时它必须崩溃。 tw.setText metod也是错误的。试试这个代码,工作:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity1 extends Activity { 

    EditText edit;// = (EditText) findViewById(R.id.editText1); 
    Button button;// = (Button) findViewById(R.id.button1); 
    TextView tw;// = (TextView) findViewById(R.id.textView1); 
    int valueint;// = Integer.parseInt(edit.getText().toString()); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_activity1); 

     edit = (EditText) findViewById(R.id.editText1); 
     button = (Button) findViewById(R.id.button1); 
     tw = (TextView) findViewById(R.id.textView1); 

     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       valueint = Integer.parseInt(edit.getText().toString()); 
       tw.setText(String.valueOf(20 * valueint)); 
      } 
     }); 

    } 
+0

您应该添加一些方法来检查空/空整数onClick。 – Dudeist 2014-11-02 22:19:22