我有一个可点击的EditText
,当我点击EditText
时,会打开一个对话框。该对话框有一个列表,该列表由保存在databaseHelper类中的数据填充。
当用户从对话框中选择一个项目时,该对话框应该关闭,所选数据应该插入EditText
。
AlertDialog ad;
EditText selectdata;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_layout);
final DBHelper db = new DBHelper(this);
selectdata = (EditText) findViewById(R.id.tfselectcategory);
selectdata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog();
}
});
}
private void showDialog(){
DBHelper db = new DBHelper(getApplicationContext());
final AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Choose Category");
// Spinner Drop down elements
List<String> lables = db.sniperdata();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, lables);
dialog.setAdapter(dataAdapter, null);
AlertDialog d = dialog.create();
d.show();
}
答案 0 :(得分:2)
为对话框列表项设置clickListner
dialog.setAdapter(dataAdapter,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// write your code for dialog dismiss.
Log.e("selected item=",lables.get(item));
}
});
答案 1 :(得分:1)
您必须为OnClickListener
对话框界面编码。
private void showDialog(){
DBHelper db = new DBHelper(getApplicationContext());
final AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Choose Category");
// Spinner Drop down elements
final List<String> lables = db.sniperdata();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, lables);
dialog.setAdapter(dataAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int ind) {
selectdata.setText(lables.get(ind));
}
});
AlertDialog d = dialog.create();
d.show();
}
试试这个。