我有listView
和片段中的自定義適配器,其中只包含一個名爲list_content
的textView。我希望用戶改變textView onClick的顏色。到目前爲止,這是我的相關代碼onCreate與listView setOnItemClickedListener一起:使用sharedPreferences在listView中保存textView顏色
@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;
}
我有兩個問題。首先,當我點擊我的物品時,顏色不會總是來回變化。第二,當我切換片段/關閉並打開應用程序時,顏色不會保存。我該如何解決?
你的答案清除它頗有幾分。我猜sharedPreferences不會真的做到這一點,我會嘗試其他方法。謝謝。 – Zeo