我有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