点击项目后尝试关闭列表视图。 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
}
});
答案 0 :(得分:0)
AlertDialog.Builder有两个builder.setPositiveButton和builder.setNegativeButton()方法可以使用它。或者您需要使用简单的Dialog进行自定义视图。
答案 1 :(得分:0)
使用AlertDialog实例可以解除弹出,你无法通过AlertDialog.Builder实现
最终的AlertDialog对话框; 最终AlertDialog.Builder alertDialog = new AlertDialog.Builder(LoginScreen.this); alertDialog.setCancelable(真); alertDialog.setTitle(&#34; DISTS&#34;);
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();
答案 2 :(得分:-1)
您创建了Alert Dialog和Alert.dismiss()
public class Test {
public DateTime A { get; set; }
public Int32 B { get; set; }
public Int64 C { get; set; }
public DateTime? D { get; set; }
}
...Main...
var @switch = new Dictionary<Type, Action> {
{ typeof(DateTime), () => Console.WriteLine("DateTime") },
{ typeof(Int32), () => Console.WriteLine("Int32") },
{ typeof(Int64), () => Console.WriteLine("Int64") },
{ typeof(DateTime?), () => Console.WriteLine("DateTime?") },
};
foreach (var prop in typeof(Test).GetProperties()) {
@switch[prop.PropertyType]();
}