0

内部にリストビューを持つAndroidタブホストがあります.listviewitemをクリックすると、タブレイアウト内の古いリストの場所に新しいリストを表示したいと思います. どうすればこれを実装できますか? (フラグメントではなくリストビューを使用する必要があります)

ここに画像の説明を入力

ありがとう!

4

1 に答える 1

1

私は解決策を見つけました:次のように、タブホスト内にアクティビティグループを配置しました:

public class DrillDownWrapper extends ActivityGroup {
    private ArrayList<View> history;
    public static DrillDownWrapper group;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        history = new ArrayList<View>();
        group = this;

        //put the first listactivity
        Intent i = new Intent(DrillDownWrapper.this, ListActivity.class);
        View view = getLocalActivityManager().startActivity("ListActivity", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
        replaceView(view);
    }

    public void replaceView(View v) {
        history.add(v);
        setContentView(v);
    }

    public void back() {
        if(history.size() > 1) {
            history.remove(history.size()-1);
            setContentView(history.get(history.size()-1));
        } else {
            finish();
        }
    }

    @Override
    public void onBackPressed() {
        DrillDownWrapper.group.back();
        return;
    }
}

listactivity 内では、getParent() メソッドを呼び出すことでコンテキストを取得できます (つまり、ダイアログを表示するため)。

于 2012-11-15T09:40:55.217 に答える