[英]Adding ActionBar with the arrow “GoBack” to PreferenceActivity?
我有一个PreferenceActivity。 我正在寻找一种添加带有箭头“ GoBack”的ActionBar的方法。 在我看来,到目前为止我发现的所有示例都过于复杂,因为如果我有一个简单的Activity,则可以用一行Java代码向其中添加ActionBar,就是这样。
我想知道,有没有简单的方法可以将带有箭头“ GoBack”的ActionBar添加到PreferenceActivity?
更新:
这是我的首选项活动:
public class PreferenceActivity123 extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit();
}
public static class MainPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
// Add this in your androidmanifest.xml file
<activity
android:name=".SecondActivity"
android:label="@string/app_name"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
您必须在操作栏活动中设置DisplayHomeasUpEnabled ,例如
getSupportActionBar().setDisplayHomeAsUpEnabled(true);//Which will show back button
在AndroidManifest.xml中定义父活动,在该活动中,一旦按下操作栏中的后退按钮,就会调用activity(PreferenceActivity)。
在清单的定义中,添加以下行:
<activity
android:parentActivityName="com.example.activities.PreferenceActivity"
</activity>
或只听optionItemSelected方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, PreferenceActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
编辑 :为了在首选项活动中实现相同,您需要在styles.xml中使用后退按钮制作自定义操作栏样式
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PrefTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/PrefActionBar</item>
</style>
<style name="PrefActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
</style>
</resources>
像清单中那样调用样式:
<application android:theme="@style/PrefTheme">
在活动中调用操作栏
getActionBar().setDisplayHomeAsUpEnabled(true);
只需使用android.support.v7.widget.Toolbar
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Toolbar actionbar = (Toolbar) findViewById(R.id.actionbar);
actionbar.setTitle("Settings");
actionbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
actionbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
YourActivity.this.finish();
}
});
}
}
和你的activity_settings.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".SettingsActivity"
tools:menu="settings"
tools:actionBarNavMode="standard"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/actionbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimaryDark"
/>
<FrameLayout
android:id="@id/content"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.