AlertDialog获取选定的值

时间:2015-10-08 10:28:13

标签: android android-alertdialog selecteditem selectedvalue

此函数创建我的警告对话框,并添加两个侦听器,一个用于在用户单击EditText时显示对话框,另一个用于在选择AlertDialog值时关闭并填充EditText。

我正在尝试检索AlertDialog的选定值,以便填充EditText。

我知道我可以在哪里找到这个值,但不幸的是,我不知道如何。

public void addSex () {
    final AlertDialog.Builder builder = new AlertDialog.Builder(SignupActivity.this);
    builder.setTitle("Votre sexe").setItems(R.array.sex_array,
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //Get dialog selected value
                }
            }
    );

    _sexText.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            AlertDialog dialog = builder.create();
            if (event.getAction() == MotionEvent.ACTION_DOWN)   dialog.show();
            return false;
        }
    });
}

2 个答案:

答案 0 :(得分:1)

public class ABC extends Activity {
    private String result;

    // other activity stuff 

    void showDialog(){
    AlertDialog.Builder b = new AlertDialog.Builder(this);
    b.setTitle("Please enter a password");
    final EditText input = new EditText(this);
    b.setView(input);
    b.setPositiveButton("OK", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int whichButton)
        {
           // SHOULD NOW WORK
           result = input.getText().toString();
        }
    });
    b.setNegativeButton("CANCEL", null);
    b.create().show();
    }
}

参考:How can I get the results from an AlertDialog?

答案 1 :(得分:0)

只需使用哪个值来了解所选元素。

    @Override
public void onClick(DialogInterface dialog, int which) {
            //Get dialog selected value
            String[] sexArray =  getResources().getStringArray(R.array.sex_array);
            _sexText.setText(sexArray[which]);    

}