0

質問は本当に簡単です。テキストビュー ボックスのテキストをランダムに変更するボタンを含むアクティビティがあります。生成された前の数値を収集する別のボタンを追加して、前の textview テキストが戻ってくるようにするにはどうすればよいですか? 引用符アプリ用です。必要な機能はありますか? 検索しましたが、乱数発生器で「戻る」機能が見つかりません。前もって感謝します。

4

1 に答える 1

0

ジェネレータ自体に戻る必要はありません。以前の値を覚えておいてください。変数に格納します。ここでは配列として prev を使用しています。これは、匿名の内部クラス (クリック ハンドラー) でアクセスできるように、最終的なものにする必要があるためです。しかし、それを変える必要もあります。そのため、値を使用しprev[0]ます。

ここでは、次の乱数を生成する nextNum というボタンがあると仮定しています。しかし、それは何でもかまいません。新しい乱数を生成するときは、前の配列の 0 番目の要素を更新するだけで問題ありません。

final String[] prev = new String[] { "" }

@Override
public void onCreate(Bundle bundle) {
    // ....
    Button BackQuote = (Button)findViewById(R.id.back); 
    final TextView display = (TextView) findViewById(R.id.textView1);

    // number generator button
    Button nextNum = (Button) findViewById(R.id.random);
    nextNum.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // generate a random number

            // store it in prev
            prev[0] = rndNum.toString();
        }
    });

    BackQuote.setOnClickListener(new View.OnClickListener() {  
        public void onClick(View v) {
            display.setText(prev[0]); 
        } 
    });
}

これを避けたい特別な理由がない限り、これは問題なく機能します。そして、乱数発生器に戻る方法はありません。定義上、それはランダムです! (はい、疑似ランダムですが)

したがって、履歴を保持したい場合は、それらを自分で実装する必要があります。履歴機能を持つ乱数発生器はまだ見たことがありません。私もそうだったらびっくりです。

于 2013-04-02T21:22:41.077 に答える