OnItemSelectedListener в диалоге - PullRequest
2 голосов
/ 06 марта 2019

У меня есть счетчик в диалоговом окне, и я пытаюсь получить значение из выбранного элемента в счетчике и передать его в строковую переменную. Метод, который я нашел, был spinner.setOnItemSelectedListener ().

Однако этот метод требует установки другого метода вне диалогового окна. Код прилагается ниже.

Это код диалога

private void recordDialog() {
    LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
    View subView = inflater.inflate(R.layout.record, null);

    //get current date
    Calendar calendar = Calendar.getInstance();
    String pattern = "dd-MMM-yy";
    DateFormat dateFormat = new SimpleDateFormat(pattern);
    final String currentDate = dateFormat.format(calendar.getTime());

    //get category
    final Spinner spinner = subView.findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
    ...
    final AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

И часть вне диалога

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String selectedCategory = parent.getItemAtPosition(position).toString();
}

Есть ли способ завершить все в диалоге?

1 Ответ

0 голосов
/ 07 марта 2019

Ну, вы можете просто реализовать onItemSelectedListener внутри вашей функции recordDialog:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
         // Do your stuff here    
      }

      public void onNothingSelected(AdapterView<?> parent) {
         // Do your stuff here  
      }
  });
}
...