Android 如何在EditText中从AlertDialog列表返回数据

Android 如何在EditText中从AlertDialog列表返回数据,android,dialog,Android,Dialog,我有一个可点击的EditText,当我点击EditText时,一个对话框打开。对话框中有一个列表,该列表由保存在databaseHelper类中的数据填充 当用户从对话框中选择一个项目时,对话框应关闭,所选数据应插入EditText AlertDialog ad; EditText selectdata; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated metho

我有一个可点击的
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();


}
AlertDialog广告;
编辑文本选择数据;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(右布局、主布局);
final DBHelper db=新的DBHelper(this);
selectdata=(EditText)findViewById(R.id.tfselectcategory);
selectdata.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
showDialog();
}
}); 
}
私有void showDialog(){
DBHelper db=newdbhelper(getApplicationContext());
最终AlertDialog.Builder对话框=新建AlertDialog.Builder(此);
对话框.setTitle(“选择类别”);
//微调器下拉元素
列表标签=db.sniperdata();
//为微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目线、标签);
setAdapter(dataAdapter,null);
AlertDialog d=dialog.create();
d、 show();
}

为对话框列表项设置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));
   }
});

为对话框列表项设置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));
   }
});

您必须为对话框界面的
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();
}
private void showDialog(){
DBHelper db=newdbhelper(getApplicationContext());
最终AlertDialog.Builder对话框=新建AlertDialog.Builder(此);
对话框.setTitle(“选择类别”);
//微调器下拉元素
最终列表标签=db.sniperdata();
//为微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目线、标签);
setAdapter(dataAdapter,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(对话框接口对话框,int ind){
选择data.setText(lables.get(ind));
}
});
AlertDialog d=dialog.create();
d、 show();
}

试试这个。

您必须为对话框界面的
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();
}
private void showDialog(){
DBHelper db=newdbhelper(getApplicationContext());
最终AlertDialog.Builder对话框=新建AlertDialog.Builder(此);
对话框.setTitle(“选择类别”);
//微调器下拉元素
最终列表标签=db.sniperdata();
//为微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目线、标签);
setAdapter(dataAdapter,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(对话框接口对话框,int ind){
选择data.setText(lables.get(ind));
}
});
AlertDialog d=dialog.create();
d、 show();
}
试试这个