package hoge; import android.content.Context; import android.preference.Preference; import android.util.AttributeSet; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class MyButtonPreference extends Preference { public MyButtonPreference(Context context) { super(context); // TODO 自動生成されたコンストラクター・スタブ } public MyButtonPreference(Context context, AttributeSet attrs) { super(context, attrs); // TODO 自動生成されたコンストラクター・スタブ } public MyButtonPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO 自動生成されたコンストラクター・スタブ } private Button mButton; private int mTitleResid; private int mSummaryResid; private int mButtonResid; private OnClickListener mClickListener; /* * 実際にレイアウトが表示されるまで処理されない! * @see android.preference.Preference#onCreateView(android.view.ViewGroup) */ @Override protected View onCreateView(ViewGroup parent) { View view = super.onCreateView(parent); ((TextView)view.findViewById(R.id.button_preference_title)).setText(mTitleResid); ((TextView)view.findViewById(R.id.button_preference_summary)).setText(mSummaryResid); mButton = (Button)view.findViewById(R.id.button_preference_button); mButton.setText(mButtonResid); mButton.setOnClickListener(mClickListener); return view; } public void setButtonPreference(int title, int summary, int button){ mTitleResid = title; mSummaryResid = summary; mButtonResid = button; } public void setOnClickListener(OnClickListener clickListener){ mClickListener = clickListener; if(mButton != null){ mButton.setOnClickListener(mClickListener); } } }
呼び出す側では
MyButtonPreference preference; preference = (MyButtonPreference) getPreferenceScreen().findPreference("hoge1"); preference.setButtonPreference(R.string.pref_title1, R.string.pref_summ1, R.string.btn_title1); preference.setOnClickListener(clickListenerClear); preference = (MyButtonPreference) getPreferenceScreen().findPreference("hoge2"); preference.setButtonPreference(R.string.pref_title2, R.string.pref_summ2, R.string.btn_title2); preference.setOnClickListener(clickListenerManage);
てな感じで使用します。
0 件のコメント:
コメントを投稿