簡體   English   中英

將自定義ListView添加到“警報”對話框

[英]Adding custom ListView to Alert dialog

我也想添加自定義列表視圖警報對話框,當我從列表中選擇一個項目並單擊(setPositiveButton)對話框時關閉,並且文本更改成功,但是當我再次單擊乘客按鈕以查看或更改時,它的效果很好選擇比申請不幸地停止

public void onClick(View v) {               // TODO Auto-generated method stub
            AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);
            builder.setCancelable(true);
            builder.setView(v);
            builder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id){
                    dialog.cancel();
                }
            });
            builder.setView(listView);
            AlertDialog dialog= builder.create();
            dialog.show();
        }
    });

請嘗試這些以在警報對話框中設置列表視圖

AlertDialog.Builder   alertdialog = new AlertDialog.Builder(context);
 LayoutInflater inflaterr = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View  viewtemplelayout= inflaterr.inflate(R.layout.product_popup, null);
    YourAdapter adap=new YourAdapter(R.layout.product_add_popup_adapter,context);
    list.setAdapter(adap);
     alertdialog.setView(viewtemplelayout);
     alertdialog.show()

我認為這對您有很大幫助。

 AlertDialog.Builder builderSingle = new AlertDialog.Builder(YourActivity.this);

        List<Requests> requester = new ArrayList<>();
        final NameAdapter AlertDialogueAdapter = new NameAdapter(this, R.layout.your_custom_layout, requester);

        AlertDialogueBuilder.add(new Requests("Hello","StackOverF"))
        builderSingle.setIcon(R.drawable.avatar);
        builderSingle.setTitle("Select Message by,");
        builderSingle.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                finish();
            }
        });
        builderSingle.setAdapter(AlertDialogueAdapter, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Requests req = AlertDialogueAdapter.getItem(which);
                AlertDialog.Builder builderInner = new AlertDialog.Builder(ViewSpecialMessage.this);
                builderInner.setMessage(req.getKey());
                builderInner.setTitle(req.getName());
                builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog,int which) {
                        dialog.dismiss();
                    }
                });
                builderInner.show();
            }
        });
        builderSingle.show();

public class Requests{
    private String name;
    private String key;
    public Requests(){

    }
    public Requests(String name, String key){
        this.name = name;
        this.key = key;
    }

    public String getName() {
        return name;
    }

    public String getKey() {
        return key;
    }
}
public class NameAdapter extends ArrayAdapter<Requests>{

    public NameAdapter(Context context, int resource, List<Requests> objects) {
        super(context, resource, objects);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.name_adapter_layout, parent, false);
        }
        final Requests message = getItem(position);
        TextView NameOfRequester = (TextView) convertView.findViewById(R.id.RequesterName);
        ImageView ImgOfRequester = (ImageView) convertView.findViewById(R.id.RequesterImage);
        NameOfRequester.setText(message.getName());
        return convertView;
    }
}

你可以試試這個

通過將類擴展為ArrayAdapter來創建costom適配器(在您的情況下為)

重寫getView()函數(也會使視圖膨脹)。

之后,您可以通過直接設置適配器

 builder.setAdapter(costomAdapter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM