对话框中的 OnItemSelectedListener

Posted

技术标签:

【中文标题】对话框中的 OnItemSelectedListener【英文标题】:OnItemSelectedListener in Dialog 【发布时间】:2019-07-28 08:56:29 【问题描述】:

我在对话框中有一个微调器,我试图从微调器中的选定项目中获取值并将其传递给字符串变量。我发现的方法是 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】:

你可以在你的recordDialog函数中实现onItemSelectedListener

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

【讨论】:

以上是关于对话框中的 OnItemSelectedListener的主要内容,如果未能解决你的问题,请参考以下文章

行未更新 - 对话框中的更新按钮(由 dataTable 中的按钮打开)

静态库中的对话框资源

React 中的模态对话框

Qt中的标准对话框之QMessageBox

NativeScript 中的自定义对话框

Viewpager 对话框中的错误