Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
androidxml,如何获取gradle参数值_Android_Xml_Gradle - Fatal编程技术网

androidxml,如何获取gradle参数值

androidxml,如何获取gradle参数值,android,xml,gradle,Android,Xml,Gradle,我正在开发一个Android应用程序,我必须在xml布局中显示该应用程序的版本,该版本存储在build.gradle文件中,我想从xml设置值。我该怎么做 这是我的gradle文件中的内容 android{ defaultConfig { minSdkVersion 9 targetSdkVersion 19 versionCode 2 versionName "v2.0" } } 我想在文本视图中编写v2.0,但

我正在开发一个Android应用程序,我必须在xml布局中显示该应用程序的版本,该版本存储在build.gradle文件中,我想从xml设置值。我该怎么做

这是我的gradle文件中的内容

android{
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 2
        versionName "v2.0"
    }
}
我想在文本视图中编写v2.0,但我不能:


谢谢

在package manager的帮助下,您可以获得以下信息:-

 PackageInfo pInfo = null;
    try {
        pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        String versionName = pInfo.versionName;

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
然后在textview或view中设置字符串versionName,无论您想在哪里使用它

正如您所提到的,您希望从textview中获取if,请按以下方式执行:

yourtextview.getText();

您可以在package manager的帮助下获得此信息:-

 PackageInfo pInfo = null;
    try {
        pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        String versionName = pInfo.versionName;

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
然后在textview或view中设置字符串versionName,无论您想在哪里使用它

正如您所提到的,您希望从textview中获取if,请按以下方式执行:

yourtextview.getText();

无法在布局中使用生成文件中的值

另一方面,您可以从Java代码中执行此操作,甚至不需要使用PackageManager。在构建阶段,Gradle会为您生成名为BuildConfig的类,该类具有字符串字段VERSION_NAME,其中包含您在构建文件中提供的值


因此,mTextView.setTextBuildConfig.VERSION_NAME;是您所需要的全部。

您无法在布局中使用生成文件中的值

另一方面,您可以从Java代码中执行此操作,甚至不需要使用PackageManager。在构建阶段,Gradle会为您生成名为BuildConfig的类,该类具有字符串字段VERSION_NAME,其中包含您在构建文件中提供的值


因此,mTextView.setTextBuildConfig.VERSION_NAME;这就是您所需要的。

但是我需要从xml中读取值,是否可能?像android:text=@string/version\u nameNo,我不想得到textview的值,我想写没有java代码的版本名,我想从xml来写。感谢您必须从java代码中获取值,然后使用setText方法,我认为没有没有java代码的方法,但我需要从xml中读取值,可能吗?像android:text=@string/version\u nameNo,我不想得到textview的值,我想写没有java代码的版本名,我想从xml来写。感谢您必须从java代码中获取值,然后使用setText方法,我认为没有任何方法没有java代码