【问题标题】:Edit text integer编辑文本整数
【发布时间】:2014-12-29 12:56:01
【问题描述】:

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());

【问题讨论】:

  • [Integer.parseInt()][1] 如果给定的字符串不是可解析的整数,方法可能会抛出异常。您应该检查 LogCat 输出以查看异常发生的位置并进行调试以查看原因。 [1]:docs.oracle.com/javase/7/docs/api/java/lang/…
  • editText 有默认值吗?如果 editText 为空,您的应用将在尝试解析时崩溃。
  • 我在按钮点击的代码中剪切粘贴 int valueint = Integer.parseInt(edittext1.getText().toString()) 现在工作
  • 如果 EditText 中没有写入任何内容,它将崩溃。在执行此行之前,您应该进行检查。
  • 现在,应用程序正在运行,但是当edittext为空时我单击按钮,应用程序不幸停止了

标签: android eclipse integer


【解决方案1】:

您试图在创建时使用空 int 值。它可以与 EditText 中的某些数字一起使用,但是当为空时它必须崩溃。 tw.setText 方法也是错误的。试试这个代码,工作:

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));
            }
        });

    }  

【讨论】:

  • 您还应该添加一些方法来检查 onClick 上的空/空整数。
猜你喜欢
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多