我的应用程序支持API级别19的所有Android版本。因此,在应用程序的一项活动中,名为About Activity,我有两个API级别的代码:发布API-21之前和之前(如截图链接如下)。
这是API级别21+的activity_about.xml的代码。正如您在此图像中看到的那样,操作栏上显示的名称是"简单天气" (应用程序的名称)。而且这里没有后退按钮,我需要很多。
<?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" />
这是API级别21以下的activity_about.xml代码(仅表示级别19)。正如您在此图片中看到的那样,有一个后退按钮,操作栏上的名称是&#34;关于&#34;
<?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" />
我想为API Level 21+的activity_about.xml提供类似的功能。这有可能吗?
这是我的Android清单文件。
<?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>
谢谢你, Aaditya
答案 0 :(得分:0)
如果您的AboutActivity
继承自Activity
,请尝试以下操作:
@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);
}
否则,如果您的AboutActivity
是AppCompatActivity
的子类:
@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
为空),则必须在布局和Activity中配置样式和功能,以便获得ActionBar。