在AutocompleteTextView中放置ImageView可以通过自定义Adapter来实现。下面是一个示例代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/autocomplete_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search"
android:padding="10dp" />
<ImageView
android:id="@+id/image_view"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_search" />
</RelativeLayout>
public class CustomAdapter extends ArrayAdapter<String> {
private Context mContext;
private List<String> mDataList;
public CustomAdapter(Context context, List<String> dataList) {
super(context, 0, dataList);
mContext = context;
mDataList = dataList;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = convertView;
if (view == null) {
view = LayoutInflater.from(mContext).inflate(R.layout.item_autocomplete, parent, false);
}
String item = mDataList.get(position);
TextView textView = view.findViewById(R.id.text_view);
textView.setText(item);
ImageView imageView = view.findViewById(R.id.image_view);
imageView.setImageResource(R.drawable.ic_search);
return view;
}
}
AutoCompleteTextView autoCompleteTextView = findViewById(R.id.autocomplete_textview);
ImageView imageView = findViewById(R.id.image_view);
List<String> dataList = new ArrayList<>();
dataList.add("Item 1");
dataList.add("Item 2");
dataList.add("Item 3");
CustomAdapter adapter = new CustomAdapter(this, dataList);
autoCompleteTextView.setAdapter(adapter);
// 设置点击事件
autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selectedItem = (String) parent.getItemAtPosition(position);
// 处理选中项的逻辑
}
});
// 设置ImageView的点击事件
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理ImageView的点击事件逻辑
}
});
这样,AutocompleteTextView中的每个项都会显示一个ImageView,并且可以通过点击ImageView来执行相应的操作。
领取专属 10元无门槛券
手把手带您无忧上云