4

というクラスがStringsAあり、その中に文字列の配列があります。

public class StringsA {

static String Names[] = {"Larry", "Moe", "Curly", "John"};  

}

私のメインクラスには aButtonと aがありTextViewます。私が望むのは、がクリックTextViewされるたびに、 のテキストを文字列配列とは異なる単語に設定することです。Button例えば; 現在のアイテムは「Moe」で、ボタンをクリックTextViewすると、「John」に変更されます (変更はランダムで、順序によるものではありません)。

私の現在のアクティビティコード:

    setContentView(R.layout.main);
    Button a = (Button) findViewById(R.id.button1);
    TextView b = (TextView) findViewById(R.id.tv);        

    Resources i = getResources();
    i.getResourceName(StringsA.Names);

    a.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {               

        }
    });
}

でエラーが発生していi.getResourceTypeNameます。をクリックしTextViewたときにテキストを文字列の 1 つに変更するにはどうすればよいですか?Button

4

2 に答える 2

24

Android リソースを最大限に活用し、strings.xml で定義された文字列配列から値を読み込みます。例えば

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

それで:

  private static final Random RAND = new Random();

  public void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.main);
    Button myButton = (Button) findViewById(R.id.button1);
    TextView myTextField = (TextView) findViewById(R.id.tv);     

    final String[] values = getResources().getStringArray(R.array.planets_array);
    myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {     
          String nextValue = values[RAND.nextInt(values.length)]          
          myTextField.setText(nextValue);
        }
    });
  }
于 2012-10-15T18:04:34.923 に答える
0

onClick メソッドに以下の 2 行を追加します。

int readomIndex = (int)(Math.random() * 3);
b.setText( Names[readomIndex]);
于 2012-11-05T02:02:21.633 に答える