Android Studio中应用版本号无法显示的问题求助
解决方法
1. 修复EditTextPreference的显示逻辑
EditTextPreference默认通过summary属性展示内容,调用setText()仅修改了它的存储值,不会自动更新界面显示。需要额外设置summary:
version = (EditTextPreference)findPreference(getString(R.string.version)); version.setText(verName); version.setSummary(verName); // 添加这行,让版本号显示在界面上
2. 使用只读Preference更合理
如果版本号不需要支持编辑,推荐改用普通Preference,避免用户误操作:
- 修改XML:
<PreferenceCategory android:title="Version"> <Preference android:key="@string/version" android:title="App Version"/> </PreferenceCategory>
- 修改Fragment代码:
Preference versionPref = findPreference(getString(R.string.version)); versionPref.setSummary(verName);
3. 确认PreferenceFragment的初始化方式
如果你使用的是AndroidX的PreferenceFragmentCompat,建议在onCreatePreferences方法中完成配置加载和赋值,这是官方推荐的写法:
@Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.preferences, rootKey); Preference versionPref = findPreference(getString(R.string.version)); versionPref.setSummary(BuildConfig.VERSION_NAME); }
4. 检查字符串资源
确保res/values/strings.xml中存在version对应的字符串,避免findPreference返回null:
<string name="version">app_version</string>
内容的提问来源于stack exchange,提问作者Moeez
相关产品推荐
相关产品推荐

