PreferenceActivityのレイアウトカスタマイズ

「アカウントと同期の設定」みたいな画面をつくる

「アカウントと同期の設定」画面みたいな画面をつくるにはどうすればよいでしょう。

基本はPreferenceActivityだけど、フッター部分のボタンを追加するには工夫が必要そうです。

自作layoutにpreferenceを載せる方法

PreferenceActivityのレイアウト変更 - テクメモ
上記ページに、自作layoutにpreferenceを載せる方法が紹介されていました。
@android:id/listなListViewを持つlayoutをsetContentViewすると、preferenceが載るListViewを差し替えられるようです。ListViewにlayout_weightを指定しておかないとButtonが表示されませんでした。

SamplePreferenceActivity

public class SamplePrerenceActivity extends PreferenceActivity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.linear);

		addPreferencesFromResource(R.xml.pref);
	}
}

linear.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:orientation="vertical">
	<ListView android:id="@android:id/list" android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:layout_weight="1" />
	<LinearLayout android:layout_width="match_parent"
		android:background="#aaaaaa" android:gravity="center_horizontal"
		android:paddingTop="10dip" android:layout_height="wrap_content">
		<Button android:layout_width="wrap_content" android:text="アカウントを追加"
			android:layout_height="wrap_content" />
	</LinearLayout>
</LinearLayout>

実際の表示

上記コードとpref.xmlにより、似たようなレイアウトを実現できました。

買ってよかったAndroidのレイアウト/UI本

Android Layout Cookbook アプリの価値を高める開発テクニック
あんざい ゆき
インプレスジャパン
売り上げランキング: 12365
Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術
あんざい ゆき
インプレスジャパン
売り上げランキング: 92209