【问题标题】:how to add listener to autocompletetextview, android?如何将侦听器添加到自动完成文本视图,android?
【发布时间】:2012-03-08 11:18:20
【问题描述】:

我正在尝试添加侦听器,该侦听器会在自动完成文本视图上选择项目时做出反应...任何人都可以帮忙 //phonename 是自动完成的文本视图

PhoneName.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                Toast.makeText(check.this," selected", Toast.LENGTH_LONG).show();

            }

            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });

【问题讨论】:

标签: android autocompletetextview


【解决方案1】:

试试这个:

phoneName.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View arg1, int pos,
                long id) {
              Toast.makeText(check.this," selected", Toast.LENGTH_LONG).show();

        }
    });

【讨论】:

  • 使用这个监听器,如果我有一个包含 10 个项目的列表,但是在键入自动完成时只生成 1 个项目,一旦我单击该项目,pos 参数将成为整个列表,还是仅在显示的内容中?
  • @JuiCe pos 将是显示项目的索引。
  • Toast.makeText(Check.this, adapter.getItem(position).toString(), Toast.LENGTH_SHORT).show();
  • 注意:为了实现setOnItemClickListener,我必须设置setOnItemSelectedListener。不知道为什么,但它不会只用 setOnItemClickListener 编译。
  • @Prabs 输入时项目的实际位置是什么?
【解决方案2】:

在 kotlin 中,这将是:

autoCompleteTextView.setOnItemClickListener { _, _, position, _ -> 
    // You can get the label or item that the user clicked:
    val value = adapter.getItem(position) ?: ""
    Toast.makeText(this, value, Toast.LENGTH_LONG).show();
}

我还建议您以小写字母开头命名变量,以免将它们与类型混淆。

【讨论】:

    【解决方案3】:

    科特林:

        v.autoCompleteTextView.setOnItemClickListener { parent, view, position, id ->
            Toast.makeText(requireContext(),"$position selected",Toast.LENGTH_LONG).show()
        }
    

    【讨论】:

      【解决方案4】:

      有更好的方法来获取所选项目的文本

      phoneName.doOnTextChanged { text, start, before, count ->
              //do something with "text" variable
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多