facebook twitter hatena line email

「Android/meta-data」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(meta-dataの値をactivityで取得する方法)
 
(同じ利用者による、間の5版が非表示)
行1: 行1:
 
==meta-dataの値をactivityで取得する方法==
 
==meta-dataの値をactivityで取得する方法==
 +
meta-dataの名前は"com.example.~"のようにドメインをつけなくても良いが、つけたほうがより良い。(googleのライブラリとかはドメインをつけてる)
 +
 
-AndroidManifest.xml
 
-AndroidManifest.xml
    <application
+
<application
 
         android:allowBackup="true"
 
         android:allowBackup="true"
 
         android:icon="@mipmap/ic_launcher"
 
         android:icon="@mipmap/ic_launcher"
行8: 行10:
 
         android:theme="@style/AppTheme" >
 
         android:theme="@style/AppTheme" >
 
         <meta-data
 
         <meta-data
             android:name="log_flag"
+
             android:name="com.example.log_flag"
 
             android:value="true" />
 
             android:value="true" />
 
         <meta-data
 
         <meta-data
             android:name="custom1"
+
             android:name="com.example.custom1"
 
             android:value="hogehoge" />
 
             android:value="hogehoge" />
    </application>
+
</application>
  
 
-MainActivity.java
 
-MainActivity.java
 
  Context context = MainActivity.this.getApplicationContext();
 
  Context context = MainActivity.this.getApplicationContext();
  try {
+
  if (context != null) {
     ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
+
     try {
    if (appInfo.metaData != null) {
+
        ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
        Log.i("test", "log_flag=" + appInfo.metaData.getBoolean("log_flag", false)); // true
+
        if (appInfo.metaData != null) {
        Log.i("test", "custom1=" + appInfo.metaData.getString("custom1")); // hogehoge
+
            if (appInfo.metaData.get("com.example.log_flag") != null) {
 +
                Log.i("test", "log_flag=" + appInfo.metaData.getBoolean("com.example.log_flag", false)); // true
 +
            }
 +
            if (appInfo.metaData.get("com.example.custom1") != null) {
 +
                Log.i("test", "custom1=" + appInfo.metaData.getString("com.example.custom1")); // hogehoge
 +
            }
 +
        }
 +
    } catch (PackageManager.NameNotFoundException e) {
 +
        e.printStackTrace();
 
     }
 
     }
} catch (PackageManager.NameNotFoundException e) {
 
    e.printStackTrace();
 
 
  }
 
  }

2018年6月13日 (水) 12:09時点における最新版

meta-dataの値をactivityで取得する方法

meta-dataの名前は"com.example.~"のようにドメインをつけなくても良いが、つけたほうがより良い。(googleのライブラリとかはドメインをつけてる)

-AndroidManifest.xml

<application
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:supportsRtl="true"
       android:theme="@style/AppTheme" >
       <meta-data
           android:name="com.example.log_flag"
           android:value="true" />
       <meta-data
           android:name="com.example.custom1"
           android:value="hogehoge" />
</application>

-MainActivity.java

Context context = MainActivity.this.getApplicationContext();
if (context != null) {
    try {
        ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
        if (appInfo.metaData != null) {
            if (appInfo.metaData.get("com.example.log_flag") != null) {
                Log.i("test", "log_flag=" + appInfo.metaData.getBoolean("com.example.log_flag", false)); // true
            }
            if (appInfo.metaData.get("com.example.custom1") != null) {
                Log.i("test", "custom1=" + appInfo.metaData.getString("com.example.custom1")); // hogehoge
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
       e.printStackTrace();
    }
}