2016-10-05 13 views
0

私のアプリはAPIレベル19のすべてのアンドロイドバージョンをサポートしています。アプリのアクティビティのアクティビティの1つで、私は2つのAPIレベル(ポストAPI-21以前)のコードを持っています(下のスクリーンショットのリンクを参照)。Androidで特定のAPIレベルのプロパティを追加するにはどうすればよいですか?

これはAPIレベル21+のactivity_about.xmlのコードです。この画像でわかるように、アクションバーに表示される名前は "Simple Weather"(アプリの名前)です。また、ここにはバックボタンがありません。

About Activity for API Level 21+

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_about" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.a5corp.weather.AboutActivity"> 

<TextView 
    android:text="TextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/appName" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="13dp" 
    android:id="@+id/appIcon" 
    android:textAppearance="@android:style/TextAppearance.Material.Large" 
    android:textAlignment="center" 
    android:textColor="#ffbb33" 
    android:textSize="96sp" /> 

<TextView 
    android:text="@string/app_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/appName" 
    android:textAppearance="@android:style/TextAppearance.Material.Medium" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="@string/source_code" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="62dp" 
    android:id="@+id/sourceAt" 
    android:textAppearance="@android:style/TextAppearance.Material.Large" 
    android:layout_below="@+id/appName" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="@string/dev_info" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="19dp" 
    android:id="@+id/madeBy" 
    android:textAppearance="@android:style/TextAppearance.Material.Medium" 
    android:layout_alignTop="@+id/appName" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/verText" /> 

これは21以下APIレベル(即ち、レベルのみ19を意味する)ためactivity_about.xmlのコードです。あなたはこの画像で見ることができるように、戻るボタンがあり、アクションバーの名前は

About Activity For API Level 19

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_about" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.a5corp.weather.AboutActivity"> 

<TextView 
    android:text="TextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/appName" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="13dp" 
    android:id="@+id/appIcon" 
    android:textSize="96sp" 
    android:textAlignment="center" 
    android:textColor="#ffbb33" /> 

<TextView 
    android:text="@string/app_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/appName" 
    android:textSize="18sp" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="@string/source_code" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="62dp" 
    android:id="@+id/sourceAt" 
    android:textSize="22sp" 
    android:layout_below="@+id/appName" 
    android:layout_centerHorizontal="true" 
    android:textColor="#000000" /> 

<TextView 
    android:text="@string/dev_info" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="19dp" 
    android:id="@+id/madeBy" 
    android:layout_alignTop="@+id/appName" 
    android:layout_centerHorizontal="true" 
    android:textSize="18sp" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/verText" /> 

「について」である私はactivity_aboutのためにこのようなものを持ちたいですAPIレベル21+の場合は.xmlも同様です。これは可能ですか?

ここに私のAndroidマニフェストファイルがあります。

Manifest File

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.a5corp.weather"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/app_icon" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name="com.a5corp.weather.GlobalActivity" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".AboutActivity" 
     android:label="About" 
     android:parentActivityName="com.a5corp.weather.WeatherActivity"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.a5corp.weather.WeatherActivity" /> 
    </activity> 
    <activity 
     android:name=".WeatherActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 
    </activity> 
    <activity android:name=".FirstLaunch" 
     android:label="Enter City"/> 
</application> 
</manifest> 

このしようと、ActivityからごAboutActivity継承する場合、 Aaditya

+0

2つのリンクを投稿する権限がありませんので、GDriveファイルリンクを使用しています。 – Sparker0i

+0

1つのアクティビティに対して2つのxmlを持つ必要はありません。そして、画像の代わりにコードを投稿するだけです。 –

+0

お返事ありがとうございました。 APIレベル21+(API 19ではサポートされていません)のために 'android:textAppearance =" @ android:style/TextAppearance.Material.Large "を満たすために2つのXMLが必要です – Sparker0i

答えて

0

をありがとう:あなたのAboutActivityAppCompatActivityのサブクラスである場合、

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_about); 

    android.app.ActionBar actionBar = getActionBar(); 
    if (actionBar != null) { 
     actionBar.setTitle("my awesome title"); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     finish(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

さもを:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_about); 

    android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 
    if (actionBar != null) { 
     actionBar.setTitle("my awesome title"); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
    } 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     finish(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

ActionBarがnullの場合)、レイアウトとアクティビティのスタイルと機能を設定して、ActionBarを取得する必要があります。

関連する問題