在 TextView 中显示 App 版本
Displaying the App version in a TextView
我想在 TextView 中显示我当前的应用程序版本,Textview 所在的 activity 不是我的 MainACtivity。
我使用了以下代码:
public class informatie extends ActionBarActivity {
public String versionName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_informatie);
try {
versionName = getApplicationContext().getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Typeface impact = Typeface.createFromAsset(getAssets(), "fonts/Impact.ttf");
TextView versieVak = (TextView) findViewById(R.id.versieView);
versieVak.setText(versionName);
Toast.makeText(getApplicationContext(), "KLIK", Toast.LENGTH_LONG).show();
versieVak.setTypeface(impact);
versieVak.setTextColor(getResources().getColor(R.color.antraciet));
versieVak.setTextSize(10, TypedValue.COMPLEX_UNIT_SP);
}
Layout.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.KnapperDev.knapper.jrw.informatie">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageView"
android:src="@drawable/overeenkomst"
android:layout_marginBottom="249dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="200dp"
android:layout_height="100dp"
android:id="@+id/versieView"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="155dp" />
</RelativeLayout>
但是当我在 phone 上打开 activity 时,TextView 中没有任何内容。
我做了一个 Toast 来检查是否使用了 versieVak.setText(versionName);
。
它只是不显示任何内容。知道我做错了什么吗?
我试过使用你的代码。它运作良好。只需删除与字体相关的代码并简单地尝试即可。检查它是否正常工作。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String versionName = "";
try {
versionName = getApplicationContext().getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
TextView versionname = (TextView) findViewById(R.id.textName);
versionname.setText(versionName);
}
还要确保您已为文本视图分配了唯一 ID。
如果可能的话,你能分享一下你的布局吗?
试试这个:
// Import the BuildConfig at the top of the file
import yourpackagename.BuildConfig
...
// in your method, just use:
TextView versionName = findViewById(R.id.textName);
versionName.setText("version : " + BuildConfig.VERSION_NAME);
这是针对 Kotlin 的-
来自activity:
var versionName = applicationContext.packageManager.getPackageInfo(applicationContext.packageName, 0).versionName
yourTextView.text = "Version $versionName"
来自片段:
var versionName = requireActivity().applicationContext.packageManager.getPackageInfo(requireActivity().applicationContext.packageName, 0).versionName
yourTextView.text = "Version $versionName"
尝试:
textView.setText("App version: " + BuildConfig.VERSION_NAME + "("+BuildConfig.VERSION_CODE+")");
我想在 TextView 中显示我当前的应用程序版本,Textview 所在的 activity 不是我的 MainACtivity。 我使用了以下代码:
public class informatie extends ActionBarActivity {
public String versionName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_informatie);
try {
versionName = getApplicationContext().getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Typeface impact = Typeface.createFromAsset(getAssets(), "fonts/Impact.ttf");
TextView versieVak = (TextView) findViewById(R.id.versieView);
versieVak.setText(versionName);
Toast.makeText(getApplicationContext(), "KLIK", Toast.LENGTH_LONG).show();
versieVak.setTypeface(impact);
versieVak.setTextColor(getResources().getColor(R.color.antraciet));
versieVak.setTextSize(10, TypedValue.COMPLEX_UNIT_SP);
}
Layout.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.KnapperDev.knapper.jrw.informatie">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/imageView"
android:src="@drawable/overeenkomst"
android:layout_marginBottom="249dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="200dp"
android:layout_height="100dp"
android:id="@+id/versieView"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="155dp" />
</RelativeLayout>
但是当我在 phone 上打开 activity 时,TextView 中没有任何内容。
我做了一个 Toast 来检查是否使用了 versieVak.setText(versionName);
。
它只是不显示任何内容。知道我做错了什么吗?
我试过使用你的代码。它运作良好。只需删除与字体相关的代码并简单地尝试即可。检查它是否正常工作。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String versionName = "";
try {
versionName = getApplicationContext().getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
TextView versionname = (TextView) findViewById(R.id.textName);
versionname.setText(versionName);
}
还要确保您已为文本视图分配了唯一 ID。 如果可能的话,你能分享一下你的布局吗?
试试这个:
// Import the BuildConfig at the top of the file
import yourpackagename.BuildConfig
...
// in your method, just use:
TextView versionName = findViewById(R.id.textName);
versionName.setText("version : " + BuildConfig.VERSION_NAME);
这是针对 Kotlin 的-
来自activity:
var versionName = applicationContext.packageManager.getPackageInfo(applicationContext.packageName, 0).versionName
yourTextView.text = "Version $versionName"
来自片段:
var versionName = requireActivity().applicationContext.packageManager.getPackageInfo(requireActivity().applicationContext.packageName, 0).versionName
yourTextView.text = "Version $versionName"
尝试:
textView.setText("App version: " + BuildConfig.VERSION_NAME + "("+BuildConfig.VERSION_CODE+")");