java - Android 应用程序过早退出

标签 java android

我是使用 JAVA 进行 Android 开发的新手,我创建的一个简单应用程序遇到了问题。 (请不要笑!)

它应该做的就是在可编辑的 TextView 中显示一个数字;此主要 Activity 的三个按钮是 +、- 和重置。 super 简单,对吧?我不知道我做错了什么,但每次我运行应用程序进行测试,然后单击任何按钮,它都会退出应用程序并返回到 Android 主屏幕。不确定我做错了什么......但这是我到目前为止的代码:

    public class Main extends Activity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
    Button btn_Plus;
    Button btn_Minus;
    Button btn_Reset;
    final EditText sCount= (EditText) findViewById(R.id.txtCount);;


    btn_Plus=(Button)findViewById(R.id.btnPlus);
    btn_Minus=(Button)findViewById(R.id.btnMinus);
    btn_Reset=(Button)findViewById(R.id.btnReset);

            //One way I tried to work it
        btn_Plus.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                                    //gets the text in the textview, makes it a string,
                                    //converts it to an int, calculates, then puts it 
                                    //back. 

                String iCounter = sCount.getText().toString();
                int iCount = Integer.parseInt(iCounter);
                iCount += 1;
                Integer.toString(iCount);
                sCount.setText(iCount);
            }   
    });

                    //The second way I tried -- neither way works.
        bM.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

            int iCount = Integer.parseInt(sCount.getText().toString());
                iCount -= 1;
                    if(iCount >0)
                        iCount = 0;
                Integer.toString(iCount);
                sCount.setText(iCount);
            }   
        });

        bR.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                int iCount = 0;
                Integer.toString(iCount);
                sCount.setText(iCount);


            }

        });


    }

    }

非常感谢!

最佳答案

改用 TextView,除非您打算允许用户直接输入数字(您似乎不这样做)。与其进行文本操作来获取数字,为什么不将数字存储为成员变量,在按下按钮时更新该数字,并相应地更改文本?我会这样写:

public class Main extends Activity {

    int count = 0;
    TextView textView;

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

        textView = (TextView) findViewById(R.id.txtCount);
        findViewById(R.id.btnPlus).setOnClickListener(this);
        findViewById(R.id.btnMinus).setOnClickListener(this);
        findViewById(R.id.btnReset).setOnClickListener(this);
    }

    private void updateText() {
        String text = Integer.toString(count);
        textView.setText(text);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.btnPlus:
            count++;
            break;
        case R.id.btnMinus:
            count--;
            break;
        case R.id.btnReset:
            count = 0;
            break;
        }

        updateText();
    }
}

关于java - Android 应用程序过早退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037925/

相关文章:

Java 表达式求值

java - 如果 Maven 依赖项传递冲突,是否可以在中介期间将 Maven 依赖项标记为 "lower priority"?

java - 为什么空赋值在函数中不起作用

android - GoogleJsonResponseException : 500 Internal Server Error

java - Picasso加载图片报错-Android

java - 什么时候在android中使用parcelable?

android - 如何在 Android Studio 中为文本添加下划线?

java - 调用以 Graphics g 作为参数的方法

java - 将 Lambda 转换为 Java 函数

android 致命异常微调器