我已經使用Android的首選API制定了設計設置。ActionBar中的主開關開關
但我不知道如何創建一個「主開關」。這裏提到http://developer.android.com/design/patterns/settings.html,但沒有文件說明如何實現它。
從技術上講,它是位於操作欄中的一個SwitchPreference,當它關閉時禁用所有的子設置。
任何想法?
我已經使用Android的首選API制定了設計設置。ActionBar中的主開關開關
但我不知道如何創建一個「主開關」。這裏提到http://developer.android.com/design/patterns/settings.html,但沒有文件說明如何實現它。
從技術上講,它是位於操作欄中的一個SwitchPreference,當它關閉時禁用所有的子設置。
任何想法?
你必須創建一個自定義的開關動作條,那麼你可以做到這一點,求助看到這個
How to add a switch to android action bar?
和
http://www.vogella.com/articles/AndroidActionBar/article.html
您必須手動創建它。這是你應該實現的模式。您可以在操作欄中添加一個按鈕,點擊後可以啓用或禁用該功能並相應地更改繪圖。你可以使用開關標籤,但這只是在api 14中介紹的。例如,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Switch
android:id="@+id/switchForActionBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</RelativeLayout>
然後,在你mainmenu.xml添加的項目如下
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/myswitch"
android:title=""
android:showAsAction="always"
android:actionLayout="@layout/switch_layout"
/>
</menu>
您可以添加使用本以及
public class TogglePreference extends Preference {
public TogglePreference(Context context) {
super(context);
}
public TogglePreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TogglePreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public View getView(View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = new LinearLayout(getContext());
((LinearLayout) convertView)
.setOrientation(LinearLayout.HORIZONTAL);
TextView txtInfo = new TextView(getContext());
txtInfo.setText("Test");
((LinearLayout) convertView).addView(txtInfo,
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT, 1));
ToggleButton btn = new ToggleButton(getContext());
((LinearLayout) convertView).addView(btn);
}
return convertView;
}
而且中的preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Test custom preferences" >
<android.dumdum.TogglePreference />
</PreferenceCategory>
</PreferenceScreen>
謝謝。是否可以使用
再次添加到api 14.您的活動是偏好活動嗎? –
不,這是一個正常的活動,在那裏我開始「SettingsFragment擴展PreferenceFragment」。我想知道android是如何在它自己的「設置」。 – NoobieNoob
感謝您的第一個鏈接。這適用於我和我想要的。 +1 – Amir