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 件のコメント:
コメントを投稿