0

Androidを使用してアプリケーションを実装していますNavigation Drawerが、問題があります。

Android Studio のテンプレート (ナビゲーション ドロワーを備えた Android アプリ) から開始し、新しいセクション - 設定を追加しました。設定ボタンをクリックすると、ユーザーは新しいアクティビティに移動し、ユーザーはアクションバーの「上へ」ボタンを押すか (これは完全に機能します)、物理的な戻るボタンを押すことで戻ることができます。その部分はあまりうまくいきません。

「上へ」ボタンを押してナビゲーションバーを開くと、マイページがハイライト(選択)されています。しかし、[戻る] ボタンを使用してナビゲーション ドロワーを開くと、ユーザーがホームページではなくそのページを表示しているかのように、[設定] 項目が選択されます。

これは、Navigation Drawer フラグメントが更新されておらず、この問題を解決する方法が見つからないためです。私が望むのは、Navigation Drawer を再作成することです (これは、「上」ボタンを押したときに起こると思います)。どうすればこれを実現できるか知っていますか?

私はこれに基づいて解決策に取り組み始めました:

getSupportFragmentManager().addOnBackStackChangedListener(
    new FragmentManager.OnBackStackChangedListener() {
        public void onBackStackChanged() {
            // Update your UI here.
        }
    });

しかし、UI全体を更新するためにそこに何を書くべきかわかりません。(onCreate() を呼び出して実験しましたが、あまりにも醜く、正しい方法ではありません)。

助言がありますか?

アップデート:

別のアクティビティから BACK を押すと、onBackStackChanged イベントは送信されません。現在のアクティビティのフラグメントのみ。

4

2 に答える 2

0

次のように、アクションバーの戻るボタンをオーバーライドする必要があります。

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            switch (item.getItemId()) {
            case android.R.id.home:
    this.finish();

//or

super.onBackPressed();

                break;

            }
            return true;

        }
于 2015-03-31T15:53:53.847 に答える
0

私は同じ問題を抱えていました.ListViewアダプターでnotifyDataSetChanged()を使用しました。

私が使用した getView() では、

if(mListView.isItemChecked(position)) {
            convertView.setBackgroundColor(getResources().getColor(R.color.md_black_1000_12));
        }else{
            convertView.setBackgroundColor(getResources().getColor(android.R.color.transparent));
        }
        notifyDataSetChanged();
于 2015-03-31T15:40:58.400 に答える