2

ダイアログボックスにedittextとlistview、正と負のボタンを表示するには? それらを別々に表示しようとしましたが、これらすべてを 1 つのダイアログ ボックスに表示したいと思います。

私が試した編集テキストを表示するには:

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setView(modeList);
builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) { 
        String myTextString = savedText.getText().toString().trim();
    }
});
4

3 に答える 3

3

カスタムダイアログが必要です。

これに関するAndroidドキュメントを読んでください。サンプルコードもあります。

ここにチュートリアルもあります

于 2012-06-27T10:54:11.787 に答える
1

新しいレイアウト ファイルを作成し、次の操作を行います。

public void showYourCustomDialog(){
    this.showDialog(YOUR_CUSTOM_DIALOG_ID);
}
@Override
public Dialog onCreateDialog(int id){
    if(id == YOUR_CUSTOM_DIALOG_ID){
        Dialog d = new Dialog();
        d.setContentView(R.id.your_dialog_layout);
        // maybe more things
        return d;
    } else return super.onCreateDialog(id);
}

新しいクラス ファイルを作成し、Dialog クラスを拡張することもできます。次に、Android が提供する基本機能の代わりに、新しい用途をダイアログに追加できます。

于 2012-06-27T11:15:31.857 に答える
0

これを試して:

String[] p_values = populate_the_list_with_your_content();
ListView mListview = new ListView(this);    // pass your context here
adpter = new ArrayAdapter<String>(this,R.layout.your_raw_item_with_whatever_you_like, p_values);
mListview.setAdapter(adpter);
AlertDialog mAlertDialog;
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
AlertDialog.Builder mBuider = new AlertDialog.Builder(your_context);
mBuider.setTitle("title");  // optional
mBuider.setPositiveButton("positive", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // do what you got to do - just be positive          
    }
});

mBuider.setNegativeButton("Back",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    // negative reaction
    }
});

mBuider.setView(mListview);
mAlertDialog = mBuider.create();
lp.copyFrom(mAlertDialog.getWindow().getAttributes());
mAlertDialog.show();

私のために働きます。nJoy!

于 2012-06-27T11:17:35.213 に答える