You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何在EditTextPreference中获取应用版本号

在EditTextPreference中显示与build.gradle同步的应用版本信息

步骤1:配置Preference布局

在你的偏好设置xml文件中添加EditTextPreference,设置应用名称为标题,同时禁用编辑功能(版本信息无需修改):

<EditTextPreference
    android:key="app_version"
    android:title="--App Name --"
    android:enabled="false" />

步骤2:读取build.gradle中的版本号并赋值

在你的PreferenceFragmentCompat(或PreferenceActivity)中,通过PackageManager获取当前应用的版本信息,再将其设置到EditTextPreference中:

Kotlin 实现:

override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
    setPreferencesFromResource(R.xml.your_preference_file, rootKey)
    
    // 获取版本信息
    val packageInfo = requireContext().packageManager.getPackageInfo(requireContext().packageName, 0)
    val versionName = packageInfo.versionName
    
    // 更新Preference内容
    findPreference<EditTextPreference>("app_version")?.apply {
        text = versionName
        summary = "版本:$versionName"
    }
}

Java 实现:

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    setPreferencesFromResource(R.xml.your_preference_file, rootKey);
    
    // 获取版本信息
    try {
        PackageInfo packageInfo = getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), 0);
        String versionName = packageInfo.versionName;
        
        // 更新Preference内容
        EditTextPreference versionPref = findPreference("app_version");
        if (versionPref != null) {
            versionPref.setText(versionName);
            versionPref.setSummary("版本:" + versionName);
        }
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
}

步骤3:确保build.gradle版本配置正确

在app/build.gradle的defaultConfig中维护版本号,上面的代码会自动读取这里的versionName:

android {
    defaultConfig {
        versionName "1.0" // 此处版本号会同步到Preference中
        // 其他配置项...
    }
}

这样设置后,你的EditTextPreference就会显示应用名称和与build.gradle同步的版本号,效果和示例一致,且版本信息无法编辑。

内容的提问来源于stack exchange,提问作者Kelvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:57:10