【问题标题】:SharedPerferences and Saving ImageButton SetImageResource drawable?SharedPreferences 和保存图像按钮 SetImageResource 可绘制?
【发布时间】:2013-08-14 02:24:59
【问题描述】:

我需要一些有关 SharedPerferences 的帮助,并在单击或未单击时保存 ImageButton (Dragon) 的状态。

当 ImageButton 未点击时,它应该是 R.drawable.normal (false),当用户点击 ImageButton 时,它应该是 R.drawable.clicked (true)。

当您离开应用程序并打开它时,应保留 ImageButton drawable.clicked 图像。我一直在网上寻找确定这是布尔值、字符串还是 setImageURI,但找不到答案。

有人可以告诉我此 SharePerferences 的正确方法并进行更正或举例说明正确的逻辑吗?

感谢您的帮助,并在下面查看我的代码。

public class Main extends Activity {
ImageButton Dragon;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final Dragon = (ImageButton) findViewById(R.id.imageButton1);

    loadPrefs();

    Dragon.setOnClickListener (new OnClickListener() {

            public void onClick(View v) {

                savePrefs("IMGBOX", Dragon.isSelected());

                if (Dragon.isSelected()){
                    Dragon.setSelected(false);

                    Dragon.setImageResource(R.drawable.clicked);

                } else { 

                    Dragon.setImageResource(R.drawable.normal);
                    Dragon.setSelected(true);
                }    
        }
}
);
}



private void loadPrefs(){
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
        boolean imgValue = sp.getBoolean("IMGBOX", false);

      if (imgValue){
          Dragon.setSelected(true);
      }else{
          Dragon.setSelected(false);
      }   
      }  
 private void savePrefs(String key, boolean value){

 SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
         Editor edit = sp.edit();
         edit.putBoolean(key, value);
         edit.commit(); 
 }
 }

更新: 我能够使用 ToggleButton 作为布尔值来运行它,这是一个具有两种状态(false/true)的 state_checked 选择器。非常感谢 Maxim Efimov 的帮助!

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/image_clicked"
      android:state_checked="true" />
<item android:drawable="@drawable/image_notclicked"
    android:state_checked="false"/>

 </selector>

【问题讨论】:

    标签: sharedpreferences drawable imagebutton


    【解决方案1】:

    您可以使用selector 将两个不同的图像附加到两个不同的状态。您需要在首选项中放置的所有内容 - 就是状态,并在应用加载后进行设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多