-1
int arr1[]={1,2,3,4,5,6,7,8,9,10};
int num=(int)(Math.random()*10);

one.setText(arr1[num]);
one=(Button)findViewById(R.id.one);
    et1=(EditText)findViewById(R.id.first);
    et2=(EditText)findViewById(R.id.second);
    one.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            hold=((Button)v).getText().toString();
            if((et1.getText().toString()).equals(""))
            et1.setText(hold);
            else
            et2.setText(hold);

        }
    });

我是否在做正确的代码来根据数组中的值设置按钮的值?因为每当我运行我的代码时,我的项目都会不幸停止。

4

4 回答 4

0

首先初始化您的按钮,然后对其进行任何设置-

int arr1[]={1,2,3,4,5,6,7,8,9,10};
 int num=(int)(Math.random()*10);

one=(Button)findViewById(R.id.one); //Initialize first
one.setText(arr1[num]);

et1=(EditText)findViewById(R.id.first);
et2=(EditText)findViewById(R.id.second);
one.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        hold=((Button)v).getText().toString();
        if((et1.getText().toString()).equals(""))
        et1.setText(hold);
        else
        et2.setText(hold);

    }
});
于 2013-08-27T13:03:40.610 回答
0

您必须首先初始化按钮,然后设置其文本。

Button one=(Button)findViewById(R.id.one);
one.setText(arr1[num]);
于 2013-08-27T12:49:12.003 回答
0

您必须先更改这两行。

one.setText(arr1[num]);
one=(Button)findViewById(R.id.one);

one=(Button)findViewById(R.id.one);
one.setText(arr1[num]);

所以你的电流NullPointerException将得到解决。之后检查。

于 2013-08-27T12:49:24.007 回答
0

问题在这里:

one.setText(arr1[num]);
one=(Button)findViewById(R.id.one);

在初始化之前,您正在使用按钮对象“one”。

将其更改为:

one=(Button)findViewById(R.id.one);
one.setText(arr1[num]);
于 2013-08-27T12:50:27.910 回答