簡體   English   中英

將帶有箭頭“ GoBack”的ActionBar添加到PreferenceActivity?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM