カスタマイズ可能なダイアログを表示しようとしています。このダイアログには、3つのエディットテキストと1つのタイムピッカーが含まれています。画面のボタンを押したときにこのダイアログを表示したい。私はグーグルチュートリアルを見て、コードを書いてみました。ただし、インフレータのルートレイアウトをボタンを押しているレイアウトとして使用すると、ボタンの下にダイアログが追加されます。dialog_xmlでルートレイアウトを使用した場合、ボタンが機能しません。そのコードの一部は以下の下にあります。どうすればこれを正しい方法で行うことができますか?
Button ekleButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.haphatirlatici);
// After creating the activity setting other things for running
ekleButton = (Button) findViewById(R.id.EkleButton);
ekleButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
// Dialog icin yerlesimler
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.ekle_dialog,
(ViewGroup) findViewById(R.id.Ekle_Layout));
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
}
});
この後、コードを編集して2つのボタンを追加します。表示されたアクティビティに対するアラートダイアログの結果を取得したい。私が書いたコードは以下にあります。
パブリッククラスHapHatirlaticiはActivity{を拡張します
Button ekleButton;
boolean eklendiMi;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.haphatirlatici);
// After creating the activity setting other things for running
ekleButton = (Button) findViewById(R.id.EkleButton);
eklendiMi = false;
ekleButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(HapHatirlatici.this);
builder.setPositiveButton(R.string.ekle,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
eklendiMi = true;
}
});
builder.setNegativeButton(R.string.vazgec, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
eklendiMi = false;
}
});
builder.setView(layout);
AlertDialog alertDialog = builder.create();
alertDialog.setTitle("Ilac Ekleme");
alertDialog.show();
}
});
}
public boolean databaseEkle()
{
boolean sonuc = false;
return sonuc;
}
}