在选择Android中的项目后,如何关闭弹出列表视图



在我单击项目后尝试关闭列表视图。listview随附项目列表,然后单击一个项目后,它将留在那里。dialog.dismiss()是否有类似的东西或listviews

     final ListView lvUser = new ListView(this);
    userList = tmDB.getAllUsers();
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(R.string.selectUser);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, userList);
    lvUser.setAdapter(arrayAdapter);
    builder.setView(lvUser);
    //when user selects item
    lvUser.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String name = userList.get(position);
            int userID;
            userID = tmDB.getUserId(name);
            txtName.setText(name);
// close the list view after selecting an item
        }
    });

您必须使用

 public AlertDialog alertDialog;
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(R.string.selectUser);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(Main3Activity.this, android.R.layout.simple_list_item_1, userList);
        lvUser.setAdapter(arrayAdapter);
        builder.setView(lvUser);
        //when user selects item
        lvUser.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String name = userList.get(position);
                int userID;
                userID = tmDB.getUserId(name);
                txtName.setText(name);
// close the list view after selecting an item
                alertDialog.dismiss();
            }
        });
        alertDialog = builder.create();
        alertDialog.show();

alertdialog.builder有两个builder.setpositivebutton和builder.setnegativebutton()使用它。或者您需要使用简单的对话框进行自定义视图。

您创建了警报对话框和alert.dismiss()

 final AlertDialog.Builder builder;
 AlertDialog alert;
 final ListView lvUser = new ListView(this);
 userList = tmDB.getAllUsers();
 builder = new AlertDialog.Builder(this);
 builder.setTitle(R.string.selectUser);
 ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, userList);
 lvUser.setAdapter(arrayAdapter);
 //when user selects item
 lvUser.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        String name = userList.get(position);
        int userID;
        userID = tmDB.getUserId(name);
        txtName.setText(name);
    // This!!
    if(alert != null){
        alert.dismiss();
    }
    }
 });
 builder.setView(lvUser);
 alert = builder.create
 alert.show();

使用alertdialog实例您可以解散弹出式,您无法通过arlaterdialog.builder

实现

最终的警报对话框; final walldialog.builder alertdialog = new AlertDialog.builder(loginscreen.this); AlertDialog.setCanceLable(true); AlertDialog.setTitle("天数");

            ListView listView = new ListView(getApplicationContext());
            final String[] listOfDays = {"MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"};
            final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(LoginScreen.this, android.R.layout.simple_list_item_1, listOfDays);
            listView.setAdapter(arrayAdapter);
            alertDialog.setView(listView);
            dialog = alertDialog.create();
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Toast.makeText(LoginScreen.this,arrayAdapter.getItem(position)+" CLICKED",Toast.LENGTH_LONG).show();
                    dialog.dismiss();
                }
            });
            dialog.show();

最新更新