0

Buttonwhich を呼び出すAndroid アプリを作成していますSelfDestruct()。ランダムに選択されたまたはTextViewが表示されるはずの もあります。ただし、 が表示されている場合は、常に設定されます。常に乱数を作成する必要があります。12112

これは私のコードです。誰かがこれを達成するのを手伝ってくれませんか...

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }
    @Override
    public void SelfDestruct(View View)
    {
        TextView tx= (TextView) findViewById(R.id.text);
        Random r = new Random();
        int x=r.nextInt(2-1) + 1;
        if(x==1)
        {
            tx.setText("1");
        }
        else if(x==2)
        {
            tx.setText("2");
        }
    }
}
4

3 に答える 3

1

問題は次の行にあると確信しています。

r.nextInt(2-1) + 1;

nextInt(n)0(包括的)からn(排他的)までの数値を返します。これは、引数として1を渡したため、0から.99までの任意の数値を取得できることを意味しますnextInt()。整数にキャストされる0〜.99 + 1の範囲の数値は1になるため、ここでは常に1を取得します。

実際に1〜2の範囲の数値が必要な場合は、次のことを試してください。

r.nextInt(2) + 1;
于 2012-06-05T15:51:49.183 に答える
0

このコードを使用してください、これは完全に機能するはずです

TextView tx= (TextView) findViewById(R.id.text);
        Random r = new Random();
        int x = r.nextInt(2) % 2 + 1;
        tx.setText("" +x);
于 2012-06-05T15:51:24.963 に答える
0

これはあなたのために行います:

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    }
    @Override
    public void SelfDestruct(View View)
    {
        TextView tx= (TextView) findViewById(R.id.text);
        Random r = new Random();
        int x=r.nextInt(2) + 1;  // r.nextInt(2) returns either 0 or 1
        tx.setText(""+x);  // cast integer to String
    }
}
于 2012-06-05T15:49:04.093 に答える