1

当我从这里开始时,我的 android 应用程序崩溃是我在不同设备上尝试过的代码,它编译得很好

public class MyActivity extends Activity {
    int userAns;
    int ran1;
    int ran2;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ran1 =(int)(Math.random()*50+1);
        ran2 =(int)(Math.random()*50+1);
        TextView number1 = (TextView) findViewById(R.id.textView);
        number1.setText(ran1);
        TextView number2 = (TextView) findViewById(R.id.textView3);
        number2.setText(ran2);
        ans =ran1+ran2;

    }
   public void sendMessage(View view){
       String userAnsS = ((EditText)findViewById(R.id.editText)).getText().toString();
       userAns= Integer.parseInt(userAnsS);
       if (userAns == ran1 + ran2) {
           return;
       }
4

4 回答 4

3

试试这个

number1.setText(""+ran1);
number2.setText(""+ran2); 

或使用

number1.setText(String.valueOf(ran1));
number2.setText(String.valueOf(ran2));

在你的情况下

public final void setText (int resid)

// looks for a resource with the id mentioned
// if resource not found you get resource not found exception

你想要什么

public final void setText (CharSequence text)

 // Sets the string value of the TextView. 
 //ran1 and ran 2 is of type int so use String.valueOf(intvalue)
于 2013-10-22T06:10:39.170 回答
0

将文本设置为 TextView 时使用字符串number2.setText(String.valueOf(ran2));

于 2013-10-22T06:10:28.840 回答
0

请参阅 android开发者网站了解 setText 的使用

你需要

setText(CharSequence text)
Sets the string value of the TextView.

setText 方法接受 CharacterSequence

并且字符串是 CharSequences,所以你可以只使用带有 setText 方法的字符串。

所以你可以同时使用number1.setText(String.valueOf(ran1));number1.setText(""+ran1);

于 2013-10-22T06:36:25.250 回答
0

ans 变量未声明为 int 类型,即 int ans=ran1+ran2

textview 的 setText 方法使用字符串作为变量,因此使用下面的 number1.setText(string.valueOf(ran1)); number2.setText(string.valueOf(ran2));

于 2013-10-22T06:40:13.857 回答