如何在单击Gridview项目时设置对话框?

时间:2017-04-30 05:50:48

标签: java android

我是android新手。当我点击gridview项目时,我想要一个带有正负按钮的对话框。现在,当我点击一个项目时,它会使用我点击的项目信息填充另一个活动。

例如,使用putExtragetExtras,填充活动效果很好。现在我想要的是,而不是gridView点击上执行的操作,我希望在ok框的Alertdialog按钮上执行操作。

如何设置gridview.setOnCLickListener以便在单击某个项目时弹出alertDialog框?

         gridView.setOnItemClickListener(new 
         AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int 
             position, long id) {
            gridView.setClickable(true);
        item= (Hotel) parent.getItemAtPosition(position);

                                    String names = item.getName();
                                    Intent i=new 
             Intent(HotelList.this,UserViewActivity.class);
                                    i.putExtra("names",names);
                                    startActivity(i);

        }

    });

2 个答案:

答案 0 :(得分:0)

首先,删除gridView.setClickable(true)。根本没有必要。其次,您可以在代码中创建对话框:

AlertDialog ad = new AlertDialog.Builder(this).setContentView(R.layout.activity_dialog).show();

答案 1 :(得分:0)

尝试以下代码:

 @Override
    public void onItemClick(AdapterView<?> parent, View view, int 
         position, long id) {

        item= (Hotel) parent.getItemAtPosition(position);

        AlertDialog.Builder dialog = new AlertDialog.Builder(this);
        dialog.setCancelable(false);
        dialog.setTitle("Your Title");
        dialog.setMessage("Your Message" );
        dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            String names = item.getName();
            Intent i= new Intent(HotelList.this,UserViewActivity.class);
            i.putExtra("names",names);
            startActivity(i);
            alert.cancel();
          }
        })
        .setNegativeButton("Cancel ", new DialogInterface.OnClickListener() 
        {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            alert.cancel();
            }
        });

        final AlertDialog alert = dialog.create();
        alert.show();
    }

});

希望这有帮助。