在AlertDialog构建器

时间:2017-04-25 19:35:05

标签: java android xml android-layout

我在互联网上找到的所有答案和信息似乎都很旧并且已弃用,我可以在左侧的标题栏上添加一个简单的图标(用户图片),但我还需要另外2个图像,一条消息和一个电话正确的,就像一个简单的用户细节视图,问题是我不知道如何设置这些图像的位置,我唯一能做的就是:

AlertDialog.Builder builder = new AlertDialog.Builder(Friends.this);
                final User user = usersList.get(position);
                builder.setTitle(user.getUsername());
                builder.setMessage("You wanna delete friendgroup: " + user.getUsername());
                builder.setIcon(R.drawable.ic_user);
                builder.setCancelable(false);
                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //myRef.child("Users").child(userId).child("FriendLists").child(friend.getName()).removeValue();
                        //friendList.remove(friend);
                        //mAdapter.notifyDataSetChanged();
                    }
                });
                builder.show();

使用builder.setIcon我可以在左边添加一个图像,但是如何添加更多图标并在我的标题右侧?我真的需要一个自定义构建器来执行此操作吗?

由于

1 个答案:

答案 0 :(得分:2)

您必须制作自定义AlertDialog

试试这个:

  1. 设计一个RelativeLayout,其中包含您的图标,标题和正确的消息以及电话图标和其他内容。
  2. 使用AlertDialog方法将此布局设置为setView()

    AlertDialog.Builder builder = new AlertDialog.Builder(Friends.this);
            final User user = usersList.get(position);
    
            LayoutInflater inflater = this.getLayoutInflater();
            View dialogView = inflater.inflate(R.layout.your_dialog_layout, null);
            builder.setView(dialogView);
    
            builder.setCancelable(false);
            builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //myRef.child("Users").child(userId).child("FriendLists").child(friend.getName()).removeValue();
                    //friendList.remove(friend);
                    //mAdapter.notifyDataSetChanged();
                }
            });
            builder.show();
    
  3. 这是一个很好的tutorial

    希望这会有所帮助〜