получить позицию выбранного значения

#android #arrays #android-alertdialog #android-spinner

#Android #массивы #android-alertdialog #android-счетчик

Вопрос:

Я использую кнопку для отображения всплывающего окна.Это похоже на счетчик, но поскольку я не получал всплывающее окно в качестве счетчика, я использовал кнопку.Все значения всплывающего окна я получаю из массива string.Теперь, что я хочу сделать, это то, что если пользователь выбирает «Мужской» из всплывающего окна, я хочу отправить связанный с ним код в веб-службу, а не «Мужской» сам.

Гендерный массив

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

Массив идентификаторов пола

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


    }
  

Теперь предположим, что если пользователь выбирает «Female» из всплывающего окна, 2 должно быть отправлено на сервер, поэтому в основном я хочу позицию того, что выбирает пользователь, чтобы я мог передать в другой массив и получить код

Комментарии:

1. просто создайте переменную класса типа selectedGender и в событии onclick присвоите ей значение. например, selectedGender = i; и используйте эту переменную в качестве значения, которое вы хотите отправить веб-службе.

Ответ №1:

Попробуйте этот способ, надеюсь, это поможет вам решить вашу проблему.

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

Ответ №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);
  

Комментарии:

1. я не использовал счетчик, я использовал кнопку