我是Android App Dev的初学者:我一直在关闭力量

时间:2011-10-28 03:36:56

标签: java android

我最近刚开始学习如何开发android应用程序。我对Java非常熟练,但我仍然试图掌握Android和xml的东西。

所以,感谢提前的帮助:D!

现在,我只是想创建一个具有EditText小部件和按钮的应用程序。目前,我的所有代码都是为按钮创建一个OnClickListener,并定义OnClick方法。我不知道为什么它会强行关闭。我之前已经尝试了一些小程序(主要是试验按钮),我也有过几次这个问题,所以我觉得这个代码并不是唯一的。

以下是代码:

public class AdditionActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Toast.makeText(AdditionActivity.this, "Welcome to Addition Helper!", Toast.LENGTH_SHORT).show();

        final EditText answerBox = (EditText) findViewById(R.id.answerBox);
        final Button button = (Button) findViewById(R.id.button);
        final TextView problem = (TextView) findViewById(R.id.problem);
//        
        //problem.setText("5+4");

        button.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {
                Toast.makeText(AdditionActivity.this, "Started", Toast.LENGTH_SHORT);
                String temp = problem.getText().subSequence(0, 1).toString();
                int first = Integer.parseInt(temp);
                temp = problem.getText().subSequence(2,3).toString();
                int second = Integer.parseInt(temp);
                int answer = first + second;
                if(Integer.parseInt(answerBox.getText().toString()) == answer) 
                    Toast.makeText(AdditionActivity.this, "Correct!!!!!", Toast.LENGTH_SHORT);
                else
                    Toast.makeText(AdditionActivity.this, "WRONG", Toast.LENGTH_SHORT);
            }
        });
    }
}

因此,如果有人知道为什么初学者可能会频繁关闭力量,或者我的代码出错了,那就太棒了!在我的布局xml文件中,我所拥有的只是EditText小部件,TextView小部件和按钮。

再次感谢您的时间,我真的很感激。

1 个答案:

答案 0 :(得分:0)

我认为您的场景在EditText中输入1 + 1,按下按钮并在TextView中显示结果。因此,

这是错误的:EditText answerBox和TextView问题
这是正确的:EditText问题和TextView answerBox

强制关闭主要是由于此行中的NullPointerException或ArrayIndexOutofBoundException:

String temp = problem.getText().subSequence(0, 1).toString();