0

アクティビティで、カスタム オブジェクトからいくつかのテキスト値を読み込みます。

これらのテキスト値は textViews に入り、textViews が画面に表示されます。

タップすると、textViews を新しい値で更新する前のボタンと次のボタンがあります。

ここにいくつかのコードがあります:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);

    myObj = (Object)getIntent().getSerializableExtra("Stuff");

    myTextView.setText(myObj.currentData().getText());

    prevButton = (Button) findViewById(R.id.prevButton);
    nextButton = (Button) findViewById(R.id.nextButton);

        prevButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.d("TAG", "prevButton tapped");
            myObj.prevData();
                            //Would like to call refresh view here
        }
    });

    nextButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.d("TAG", "nextButton tapped");
            myObj.nextData();   
                            //Would like to call refresh view here too
        }
    });

 }

ここで、前または次のボタンを押してからデバイスを回転させると、ビューが更新されることに気付きました。デバイスを回転させずに再現しようとしています。

ありがとう

4

1 に答える 1

1

シンプルに保ち、次のようにすることができます。

public void onCreate(Bundle onSavedInstanceState) {
     // Other code
     refreshTextView();
}

public void onClick(View v) {
     // Advance currentData()
     refreshTextView();
}

private void refreshTextView() {
     myTextView.setText(myObj.currentData().getText());
}
于 2013-03-12T00:17:39.773 に答える