【问题标题】:get the selected value position获取选中的值位置
【发布时间】:2014-07-07 06:33:29
【问题描述】:

我正在使用一个按钮来显示一个弹出窗口。它就像一个微调器,但由于我没有像微调器那样得到一个弹出窗口,所以我使用了一个按钮。我从字符串数组中获得的弹出窗口的所有值。现在我想要什么要做的是,如果用户从弹出窗口中选择“男性”,我想将与其关联的代码发送到 Web 服务而不是“男性”它自己。

性别数组

<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();


    }

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

【问题讨论】:

  • 只需创建一个类变量,如 selectedGender 并在 onclick 事件中为其赋值。喜欢 selectedGender = i;并将此变量用作您要发送到 Web 服务的值。

标签: android arrays android-alertdialog android-spinner


【解决方案1】:

试试这个方法,希望能帮助你解决问题。

ma​​in.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);
    }
}

【讨论】:

    【解决方案2】:

    你的 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);
    

    【讨论】:

    • 我没用过微调器,我用过按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2021-05-30
    相关资源
    最近更新 更多