簡體   English   中英

生成隨機數時,Android應用會停止

[英]Android app stops when making random number

我似乎在任何地方都找不到這個答案。 我已經嘗試了所有可以找到的代碼。 我有一個應用,需要制作2個隨機數,用戶會將它們加在一起。 它是一個數學練習應用程序。

這是ui的xml代碼。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:id="@+id/num1"
    android:layout_marginRight="50dp"
    android:layout_marginEnd="50dp"
    android:textSize="72sp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/oper"
    android:layout_toStartOf="@+id/oper" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:id="@+id/num2"
    android:textSize="72sp"
    android:layout_alignTop="@+id/oper"
    android:layout_toRightOf="@+id/oper"
    android:layout_toEndOf="@+id/oper"
    android:layout_marginLeft="50dp"
    android:layout_marginStart="50dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="+"
    android:id="@+id/oper"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textSize="72sp" />

第一個textview和第三個是應用程序將生成的隨機數。 第二個textview只是一個加號。

這是我的Java代碼(請記住,這不是mainActivity)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_addition);
    updateNums();

}

public void updateNums(){
    final Random random = new Random();
    final int randval = random.nextInt(10 - 1 + 1) + 1;
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            final TextView num1 = (TextView) findViewById(R.id.num1);
            num1.setText(randval);
            final TextView num2 = (TextView) findViewById(R.id.num2);
            num2.setText(randval);
        }});
}

您必須將隨機值轉換為字符串-否則將其視為字符串-res

public void updateNums(){
    final Random random = new Random();
    final int randval = random.nextInt(10 - 1 + 1) + 1;
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            final TextView num1 = (TextView) findViewById(R.id.num1);
            num1.setText(String.valueOf(randval));
            final TextView num2 = (TextView) findViewById(R.id.num2);
            num2.setText(String.valueOf(randval));
        }});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM