私はlistView
と、list_content
というテキストビューのみを含むカスタムアダプタをフラグメントにしました。私は、ユーザーがtextView onClickの色を変更したい。これまでのところ私の関連するコードはlistView setOnItemClickedListenerと一緒に作成します。textViewのカラーをsharedPreferencesのlistViewに保存します
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate
View view = inflater.inflate(R.layout.fragment_grocery_list, container, false);
//Load text color
color = getContext().getSharedPreferences("com.android.me", MODE_PRIVATE);
colourValue = color.getString("colourValue", null);
//list view
listView = (ListView) view.findViewById(R.id.groceryListView);
//arrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, groceries);
arrayAdapter = new customAdapter(getContext(), groceries);
listView.setAdapter(arrayAdapter);
//list view click listener
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
list_content = (TextView) view.findViewById(R.id.list_content);
color = getContext().getSharedPreferences("com.android.me", MODE_PRIVATE);
colourValue = color.getString("colourValue", null);
if (list_content.getCurrentTextColor() == Color.parseColor("#000000")){ //Check if item is checked or not | if (list_content.getCurrentTextColor() == Color.parseColor("#000000")) {
color.edit().putString("colourValue","#a7a7a7").apply();
} else {
color.edit().putString("colourValue","#000000").apply();
}
list_content.setTextColor(Color.parseColor(colourValue));
}
});
return view;
}
私には2つの問題があります。まず、自分のアイテムをクリックすると、色が常に前後に変わることはありません。もう一つは、フラグメントの切り替え/閉じるとアプリケーションを開くときに色が保存されません。これをどうやって解決するのですか?
あなたの答えはかなりそれをクリア。私はsharedPreferencesが本当にこれをしないと思う、私は他の方法を試してみます。ありがとう。 – Zeo