私のフラグメントに2つの異なるビューのデータリストがあります。私のデフォルトビューはListviewで、もう1つはGridviewです。私はこの2つのビューをツールバーのアイコンをクリックして切り替えます。 そして、私はこのようなonOptionsItemSelectedメソッド内で動的に切り替えアイテムのアイコンを設定します。optionMenuアイテムアイコンを共有プリファレンスに保存
//global variables
private int currentViewMode = 0 ;
static final int VIEW_MODE_LISTVIEW = 0;
static final int VIEW_MODE_GRIDVIEW = 1;
.
.
.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.switchView:
if (VIEW_MODE_LISTVIEW == currentViewMode){
item.setIcon(R.mipmap.ic_gridview);
currentViewMode = VIEW_MODE_GRIDVIEW;
}else {
item.setIcon(R.mipmap.ic_listview);
currentViewMode = VIEW_MODE_LISTVIEW;
}
switchView();
SharedPreferences sharedPreferences = activity.getSharedPreferences("ViewMode",currentViewMode);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("currentViewMode",currentViewMode);
editor.commit();
return false;
default:
break;
}
return super.onOptionsItemSelected(item);
}
そして、私はこのような共有環境設定から私のビューを取得:
SharedPreferences sharedPreferences = activity.getSharedPreferences("ViewMode",activity.MODE_PRIVATE);
currentViewMode = sharedPreferences.getInt("currentViewMode",VIEW_MODE_LISTVIEW);
しかし、私は保存することができますかわかりませんアイテムアイコンとそれを取得する方法を示します。
お願いします。あなたのGridViewのためのあなたのメニューXML内の別の項目を追加することができます
メニュー
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/switchView"
android:title=""
android:icon="@mipmap/ic_listview"
app:showAsAction="always"/>
</menu>
内
setHasOptionsMenu(true);
に持っています。 currentViewModeを正しく使用して、アセットからロードするアイコンを決定します。 –