1

私はAndroidアプリケーションの開発に関しては少し新しいですが、現在アプリを開発しています。ユーザーがボタン(次へ)をクリックするたびにTextViewを変更しようとしていますが、別のボタン(前へ)がクリックされると、元のTextViewに戻す必要があります。つまり、基本的には、一定量のTextViewを設定し、前述の2つのボタンを使用してそれらを参照できるようにしたいと思います。

これまでのところ、ボタン(次へ)クリックでTextViewを1回変更する方法しか知りません。私はそのためにこのコードを使用しています:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_main);

    ImageButton Next = (ImageButton) findViewById(R.id.Next);
    Next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            TextView Text1= (TextView) findViewById(R.id.Text1);
            Text1.setText("New Text");  
        }
    });

注:ボタン「PREVIOUS」は、どうしたらよいかわからなかったため、まだ含まれていません。

このコードは、TextViewを1回変更する必要があり、複数回変更するにはまったく異なるメソッドが必要な場合にのみ使用されると感じています。

私があなたに十分な情報を提供し、あなたがここで私を助けてくれることを願っています。前もって感謝します!

4

2 に答える 2

2
public class MyActivity extends Activity implements View.OnClickListener {

int stringIdList[] = {R.string.text1, R.string.text2, R.string.text3, R.string.text4}
int stringListCounter = 0;
TextView text1;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   ImageButton next = (ImageButton) findViewById(R.id.Next);
   ImageButton previous = (ImageButton) findViewById(R.id.Previous);
   text1 = (TextView) findViewById(R.id.Text1);
   Next.setOnClickListener(this);
   previous.setOnClickListener(this);
}

@Override
public void onClick(View v) {
  int id = v.getId();

  if(id == R.id.Next && stringListCounter < stringIdList.length - 1) {
    stringListCounter++;
  } else if (id == R.id.Previous && counter > 0) {
    stringListCounter--;
  }

  Text1.setText(stringIdList[stringListCounter]);
}

OnClickListenerこれは、クリックイベントを処理するためにアクティビティをに割り当てます。Nextが押され、カウンターが配列リストの範囲内にある場合、カウンターが増加します。についても同じですprevious。クリックの終わりに、IDが何であれテキストを設定します。strings.xmlこれは、文字列がAndroid仕様で推奨されている静的なファイルにあることを前提としています。

于 2012-12-12T15:01:09.703 に答える
0

履歴をリストとして保存し、各瞬間にテキストビューのすべての状態を保持できると思います。前のボタンを押した後、この履歴スタックから前の値を取得するだけです。

于 2012-12-12T14:45:54.597 に答える