获取选定的值位置

时间:2014-07-07 06:33:29

标签: android arrays alertdialog android-spinner

我正在使用一个按钮来显示一个弹出窗口。它像一个微调器,但因为我没有得到一个弹出窗口作为微调器我使用了一个按钮。弹出窗口的所有值我从字符串数组得到。现在我想要的要做的是,如果用户选择"男性"从弹出窗口我想将与之关联的代码发送到Web服务而不是#34;男性"它自我。

性别数组

<string-array name="Gender">
        <item>Select Gender</item>
        <item>Male</item>
        <item>Female</item>
    </string-array>

性别Id数组

<string-array name="Gender_id">
        <item>Select</item>
        <item>2</item>
        <item>1</item>

弹出

 public static void showDialog(Context c, String title, final String[] array, final Button b) {
        builder = new AlertDialog.Builder(c);
        builder.setTitle(title);
        builder.setItems(array, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                b.setText(array[i]);
                dialogInterface.dismiss();
            }
        });

        builder.show();


    }

现在假设用户选择&#34;女性&#34;从弹出窗口,2应该发送到服务器,所以基本上我想要用户选择的位置,以便我可以给其他数组并获取代码

2 个答案:

答案 0 :(得分:0)

你的Spinner项目是这样创建的

 Spinner display_spinner = (Spinner)  findViewById(R.id.datadisplay_spinner);

 ArrayAdapter<CharSequence> record_length_spinner_adapter = ArrayAdapter
            .createFromResource(youractivity.this, R.array.Gender, android.R.layout.simple_spinner_item);
 record_length_spinner_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 display_spinner.setAdapter(record_length_spinner_adapter);

答案 1 :(得分:0)

试试这种方式,希望这可以帮助您解决问题。

<强> main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">


    <Button
        android:id="@+id/btnSelectGender"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Select Gender"/>

</LinearLayout>

<强> MyActivity.java

public class MyActivity extends Activity {

    private Button btnSelectGender;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btnSelectGender = (Button) findViewById(R.id.btnSelectGender);
        btnSelectGender.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(MyActivity.this, "Select Gender", getResources().getStringArray(R.array.Gender),new onGenderSelected() {
                    @Override
                    public void genderSelection(int position) {
                        btnSelectGender.setText(getResources().getStringArray(R.array.Gender)[position]);
                        Toast.makeText(MyActivity.this,getResources().getStringArray(R.array.Gender)[position]+" >>> "+getResources().getStringArray(R.array.Gender_id)[position],Toast.LENGTH_SHORT).show();
                        System.out.print("Gender Title : " +getResources().getStringArray(R.array.Gender)[position]);
                        System.out.print("Gender Value : " +getResources().getStringArray(R.array.Gender_id)[position]);
                    }
                });
            }
        });


    }

    public static void showDialog(Context c, String title, final String[] array,final onGenderSelected target) {
        AlertDialog.Builder builder = new AlertDialog.Builder(c);
        builder.setTitle(title);
        builder.setItems(array, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                target.genderSelection(i);
                dialogInterface.dismiss();
            }
        });

        builder.show();


    }
    public interface onGenderSelected{
        public void genderSelection(int position);
    }
}