You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Material Design Autocomplete下拉项选中后无法自动填充问题

问题根因及解决方法

1. 下拉项布局抢占了点击事件

你在fixed_amount_list.xml的TextView中额外设置了android:clickable="true"和android:focusable="true",这两个属性会让子View优先消费点击事件,导致父控件AutoCompleteTextView无法接收到条目选中的回调。
解决方法:删除这两个属性即可,修正后的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:ellipsize="end"
    android:maxLines="1"
    android:textAppearance="?attr/textAppearanceSubtitle1"/>

2. 未设置条目选中监听

你没有给AutoCompleteTextView设置OnItemClickListener,选中条目后的赋值、收起菜单逻辑需要手动实现。

3. 适配器初始化代码书写错误

你代码中写的new Adapter(...)是错误的,应该明确指定为ArrayAdapter,否则会编译报错。


修正后的AmountActivity完整代码

public class AmountActivity extends AppCompatActivity {

    private AutoCompleteTextView order_transfert_amound_fixed_textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_amount);

         order_transfert_amound_fixed_textView = findViewById(R.id.order_transfert_amound_fixed_textView);
         // 修正适配器初始化代码
         ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.fixed_amount_list, AMOUNTS);
         order_transfert_amound_fixed_textView.setAdapter(adapter);
         
         // 添加选中监听
         order_transfert_amound_fixed_textView.setOnItemClickListener((parent, view, position, id) -> {
             // 获取选中的金额
             String selectedAmount = (String) parent.getItemAtPosition(position);
             // 赋值到输入框
             order_transfert_amound_fixed_textView.setText(selectedAmount);
             // 收起下拉菜单
             order_transfert_amound_fixed_textView.dismissDropDown();
         });
    }
    
    private static final String[] AMOUNTS = new String[] {
       "10.00", "15.00", "20.00", "25.00", "30.00"
    };
}

可选优化点

如果不需要用户手动输入金额,只想让用户从下拉列表选择,可以给AutoCompleteTextView添加android:editable="false"属性,避免弹出输入法。

内容的提问来源于stack exchange,提问作者Horly Andelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:51:02