在应用程序加载时更改默认xml映像

时间:2012-12-19 19:02:20

标签: android xml

我有一个Android应用程序,默认情况下显示一系列使用xml的ImageButtons。用户根据输入更改图像。我试图在用户下次加载应用程序时显示更改的ImageButtons。

实施例: ImageButton以Android.png开头(从默认的xml页面加载) 用户输入文字 ImageButton更改为Correct.png

下次应用程序加载时我想要显示Correct.png而不是Android.png。有没有办法在应用程序启动之前迭代ImageButtons(按钮不是以编程方式创建的),以便在应用程序加载之前为每个按钮设置源值?

2 个答案:

答案 0 :(得分:0)

您可以为每个按钮使用findViewById(R.id.button_1)并根据需要进行设置。然后,您需要存储它应具有的值,以便您可以加载这些值并为每个值设置ImageButton源。您可以使用SharedPreferences或SQLite数据库存储它,具体取决于您需要更改的数量。

所以,例如:

ImageButton b = (ImageButton)findViewById(R.id.button_1);
b.setImageDrawable(drawable);

你可以为复选框加载一个drawable,这样你只做一次,效率更高,或者你可以将setImageResource设置为R.drawable.correct,这会慢一点,因为我认为复选框可能会设置为多个图像。

答案 1 :(得分:0)

使用SharedPreferences执行此操作的更好方法。

SharedPreferences sharedPref = getSharedPreferences("userpref", Activity.MODE_PRIVATE);

String image = pref.getString("userchoice","no-image");

if(image.equeals("no-image")
{
     imageView.setBackgroundResource(R.drawable.android);
}
else
{
     //compare here your image
     imageView.setBackgroundResource(R.drawable.Correct);
}

每当用户选择任何其他图片时,只需使用以下代码编辑preference文件。

SharedPreferences.Editor editor = pref.edit();
editor.putString("userchoice","Correct.png");