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

Java 如何在Android中选择项目后关闭弹出列表视图,java,android,sqlite,listview,Java,Android,Sqlite,Listview,尝试在单击某个项目后关闭列表视图。listview会弹出一个项目列表,我单击一个项目后,它会停留在那里。是否有类似于dialog.dismise()或列表视图的内容 final ListView lvUser = new ListView(this); userList = tmDB.getAllUsers(); final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.

尝试在单击某个项目后关闭列表视图。
listview
会弹出一个项目列表,我单击一个项目后,它会停留在那里。是否有类似于
dialog.dismise()
列表视图的内容

     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
        }
    });
final ListView lvUser=new ListView(此);
userList=tmDB.getAllUsers();
final AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(R.string.selectUser);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u list\u item\u 1,userList);
lvUser.setAdapter(arrayAdapter);
builder.setView(lvUser);
//当用户选择项目时
lvUser.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String name=userList.get(位置);
int用户标识;
userID=tmDB.getUserId(名称);
txtName.setText(名称);
//选择项目后关闭列表视图
}
});

您创建了警报对话框和警报。解除()

final AlertDialog.Builder;
警报对话框警报;
最终ListView lvUser=新ListView(此);
userList=tmDB.getAllUsers();
builder=新建AlertDialog.builder(此);
builder.setTitle(R.string.selectUser);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(MainActivity.this,android.R.layout.simple\u list\u item\u 1,userList);
lvUser.setAdapter(arrayAdapter);
//当用户选择项目时
lvUser.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String name=userList.get(位置);
int用户标识;
userID=tmDB.getUserId(名称);
txtName.setText(名称);
//这个!!
如果(警报!=null){
警惕。解散();
}
}
});
builder.setView(lvUser);
alert=builder.create
alert.show();

AlertDialog.Builder有两个Builder.setPositiveButton和Builder.setNegativeButton()方法来使用它。或者,您需要使用简单对话框来自定义视图。

您必须使用

 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();
public-AlertDialog-AlertDialog;
final AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setTitle(R.string.selectUser);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(Main3Activity.this,android.R.layout.simple\u list\u item\u 1,userList);
lvUser.setAdapter(arrayAdapter);
builder.setView(lvUser);
//当用户选择项目时
lvUser.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String name=userList.get(位置);
int用户标识;
userID=tmDB.getUserId(名称);
txtName.setText(名称);
//选择项目后关闭列表视图
alertDialog.disclose();
}
});
alertDialog=builder.create();
alertDialog.show();

使用AlertDialog实例可以关闭弹出窗口,这是AlertDialog.Builder无法实现的

最终警报对话框; final AlertDialog.Builder AlertDialog=新建AlertDialog.Builder(LoginScreen.this); alertDialog.setCancelable(真); alertDialog.setTitle(“天数列表”)

ListView ListView=新建ListView(getApplicationContext());
最终字符串[]listOfDays={“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”};
final ArrayAdapter ArrayAdapter=新的ArrayAdapter(LoginScreen.this,android.R.layout.simple\u list\u item\u 1,listOfDays);
setAdapter(arrayAdapter);
alertDialog.setView(listView);
dialog=alertDialog.create();
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(LoginScreen.this,arrayAdapter.getItem(position)+“CLICKED”,Toast.LENGTH_LONG.show();
dialog.dismise();
}
});
dialog.show();

您是否尝试在listView上关闭对话框单击?请参阅我更新的帖子,它将帮助您提醒对话框。生成器不包含关闭方法编辑代码。警报创建和此警报解除()
 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();
            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();