gpt4 book ai didi

java - 如何在首选项 Activity 中显示应用程序版本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:55:07 26 4
gpt4 key购买 nike

我想添加一个我的应用程序版本并可能构建在我的 SettingsActivity 上。

我试图在我的应用程序上显示“关于电话”样式的 Activity 。但我不知道该怎么做。

我目前在我的 preference.xml 中使用 EditTextPreference,它在点击时调用一个对话框,但我希望它是这样的,其中 onClick 事件不产生一个对话框。:

Nexus 5 screenshot

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.pref_general);
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);

LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent();
Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.tool_bar, root, false);
root.addView(bar, 0); // insert at top
bar.setTitle("Settings");
bar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}

pref_general.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="Settings">

<PreferenceCategory android:title="About" >
<EditTextPreference
android:title="Version"
android:summary="@string/app_version"
android:key="prefUsername"/>
</PreferenceCategory>

还有一件事,有没有办法通过 xml 从 gradle 获取应用程序和内部版本号。

我知道我像穴居人一样编码并且我通常在 strings.xml 中手动更新它们,但我要辩护我是 Android 的新手。

最佳答案

我最终得到了这个。

enter image description here

我没有扩展类之类的东西

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity {

public static final String TAG = "caveman";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.pref_general);

Preference pref = findPreference( "developer" );
pref.setSummary("Marathon Apps");

Preference pref1 = findPreference( "version" );
try {
pref1.setSummary(appVersion());
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);

LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent();
Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.tool_bar, root, false);
root.addView(bar, 0); // insert at top
bar.setTitle("Prism");
bar.setSubtitle("Settings");
bar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}

public String appVersion() throws PackageManager.NameNotFoundException {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;
return version;
}

pref_general.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="About">
<PreferenceScreen
android:title="Developer"
android:key="developer"
android:summary="Marathon Apps">
</PreferenceScreen>

<PreferenceScreen
android:title="Version"
android:key="version"
android:summary="1.0">
</PreferenceScreen>
</PreferenceCategory>


</PreferenceScreen>

关于java - 如何在首选项 Activity 中显示应用程序版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31874929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com