Android 单击此按钮时更改textview的背景色

Android 单击此按钮时更改textview的背景色,android,textview,sharedpreferences,background-color,Android,Textview,Sharedpreferences,Background Color,我有一个textview,我想在单击textview时设置此背景色,并在再次单击textview时重置默认背景色。并将此背景色保存到SharedReference。 你怎么能做到?对不起,我的英语不好。像这样做吧 SharedPreferences prefs = getActivity().getSharedPreferences("my_preference", Context.MODE_PRIVATE); String restoredText = prefs.getString("col

我有一个textview,我想在单击textview时设置此背景色,并在再次单击textview时重置默认背景色。并将此背景色保存到SharedReference。 你怎么能做到?对不起,我的英语不好。

像这样做吧

SharedPreferences prefs = getActivity().getSharedPreferences("my_preference", Context.MODE_PRIVATE);
String restoredText = prefs.getString("color", "default");

TextView textView = (TextView) view.findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final String restoredText = prefs.getString("color", "default");
        if (restoredText.equals("default")) {
            textView.setBackgroundColor(Color.parseColor("#999999"));
            SharedPreferences.Editor editor = getSharedPreferences("my_preference", Context.MODE_PRIVATE).edit();
            editor.putString("color", "gray");
            editor.commit();
        } else {
            textView.setBackgroundColor(Color.parseColor("#cccccc"));
            SharedPreferences.Editor editor = getSharedPreferences("my_preference", Context.MODE_PRIVATE).edit();
            editor.putString("color", "default");
            editor.commit();

        }


    }
});
做这样的事

SharedPreferences prefs = getActivity().getSharedPreferences("my_preference", Context.MODE_PRIVATE);
String restoredText = prefs.getString("color", "default");

TextView textView = (TextView) view.findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final String restoredText = prefs.getString("color", "default");
        if (restoredText.equals("default")) {
            textView.setBackgroundColor(Color.parseColor("#999999"));
            SharedPreferences.Editor editor = getSharedPreferences("my_preference", Context.MODE_PRIVATE).edit();
            editor.putString("color", "gray");
            editor.commit();
        } else {
            textView.setBackgroundColor(Color.parseColor("#cccccc"));
            SharedPreferences.Editor editor = getSharedPreferences("my_preference", Context.MODE_PRIVATE).edit();
            editor.putString("color", "default");
            editor.commit();

        }


    }
});

togglebutton就是为此而设计的。它是免费的,可以随意使用:))您也可以使用自定义xml drawable。谢谢,但我必须使用Textview而不是Togglebutton,请帮助metogglebutton就是为此目的设计的。它是免费的,可以随意使用:))您也可以使用自定义xml drawable。谢谢,但我必须使用Textview not Togglebutton,请帮助我修改,但我们不需要使用final?是的。不需要使用finalSo我们需要更新线程上的UI吗?例如:RunNuithRead或Handler?它有一个bug,当这个活动加载颜色改变时?谢谢,但我们不需要使用final?是的。不需要使用finalSo我们需要更新线程上的UI吗?runOnUIThread或Handler?它有一个bug,当这个活动加载颜色改变时?