2

配列内の名前のリストがあり、これらをクリックすると、名前とその名前のコードを表示するレコード画面が表示されます。情報は、一致する長さの配列で提供されます。録音画面のボタンをクリックすると、次の名前の対応する画面に移動できるようにしたいと思います。

インテントからlistViewアイテムのインデックスiを取得し、それを使用して配列からその名前の適切なデータを取得しました。

以下は、記録画面の私のコードです。

public class RecordActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_record);

Intent intent = getIntent();
final int i = intent.getIntExtra(MainActivity.EXTRA_INDEX, 0);  

final String[]names = getResources().getStringArray(R.array.names);
final String[]codes = getResources().getStringArray(R.array.codes);

final TextView nameView = new TextView(this);
nameView = (TextView) findViewById(R.id.vNames);
String vName = names[i];
nameView.setText(vName);

TextView codeView = new TextView(this);
codeView = (TextView) findViewById(R.id.vCodes);
String vCode = codes[i];
codeView.setText(vCode);

nextButton = (Button) findViewById(R.id.nextButton);
nextButton.setOnClickListener(new OnClickListener(){
    public void onClick(View v) {

    }
    }});
}

ボタンのonClickメソッドで、「i = i + 1を設定してから、データを更新する」などの操作を実行したいのですが、プログラミングに慣れていないため、これを「書き込む」方法が完全にはわかりません。

私はもう試した

if (i<names.length) {
  nameView.setText(names[i]);
  i++;}

しかし、「最後のローカル変数iは、囲んでいる型で定義されているため、割り当てることができません」というエラーが発生しました。

情報を表示するためにインデックスを呼び出す配列を12個も持つようにしたいので、これをできるだけ一般的にしたいと思います。

どんなアイデアでも大歓迎です!

4

2 に答える 2

0

i final を設定しないでください - 代わりに使用します

this.i

OnClickListener メソッドでアクセスします。通常のコーディング規約では、おそらく i を変数として使用することはないでしょうが、それが何を表しているかを示すために、より明確なものを使用します。

于 2012-11-01T16:02:41.243 に答える