使用的數據庫,或者sharedPreferences保持字符串的價值觀,並作爲默認使用R.string.bla_bla,導致無法更改資源但更新整個應用程序。 嘗試是這樣的讀取字符串:
SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
String bla_bla = mSharedPreferences.getString("R.string.bla_bla", context.getString(R.string.bla_bla));
並能代替值:
Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString("R.string.bla_bla", bla_bla);
editor.commit();
更新
好吧,我知道了。那麼你應該創建自己的類擴展Button
,就像這一個。
public class MButton extends Button {
String mText;
public MButton(Context context, AttributeSet attrs) {
super(context, attrs);
loadText(context, attrs);
}
public MButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
loadText(context, attrs);
}
void loadText(Context context, AttributeSet attrs) {
String stringId = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "text");
// stringId = @2130903040
int intStringId = Integer.parseInt(stringId.substring(1));
// intStringId = 2130903040
mText = PreferenceManager.getDefaultSharedPreferences(context).getString(stringId, context.getString(intStringId));
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
setText(mText);
}
}
而且用它在你的佈局:
<com.example.test.MButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:onClick="clicked" />
但要確保你清理所有SharedPreferences保存自定義字符串,當你更新你的應用程序,使你的資源ID將被重新排序。祝你好運!
謝謝,但存儲的東西不是真的有問題,我只是想自動化充氣過程。我不想寫像button1.setText(「更新的字符串」)等東西 – taytay