1

以下の要件について、多くの場所を検索し、stackoverflow に質問を投稿しました

ここに画像の説明を入力

クリックするとbutton.....1が表示されます.....buttonもう一度2クリックすると表示されます....もう一度クリックするとbutton再び1表示されます!


このサイクルはずっと続くはずです

私は tabhost と use tabs を使用するための推奨事項しか持っていません....さまざまなタブを使用してさまざまなアクティビティを開始する場所を探していません....

何か案は !

例は確かに役立つでしょう

4

1 に答える 1

1

アクティビティはこのように設計されていません。アクティビティは画面を表し、画面の一部ではありません。そのため、別の画面に含めることはできません。探しているのはフラグメントです。コードをアクティビティからフラグメントに移動する必要があります。アクティビティ内のフラグメントのライフサイクルを理解すれば、リファクタリングは非常に簡単です。

画面の切り替えに関しては、どのフラグメントが表示されているかを追跡する単純なブール値として、次のようなものを使用してビュー内のフラグメントを置き換えます。

boolean fragmentOneDisplayed = true;
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
    Fragment newFragment = fragmentOneDisplayed ? new Fragment2() : new Fragment1();
    ft.replace(id of Fragment's placeholder in your Activity's layout , new Fragment);
    ft.commit();
    fragmentOneDisplayed = (newFragment instanceof Fragment1) ? true : false;
}
});
于 2013-10-13T12:50:15.307 に答える