android - 如何在 Android AutoCompleteTextView 中添加 x 或取消

标签 android autocompletetextview

这是我正在开发的应用程序。 我正在使用AutoCompleteTextView

This is the app

我想在里面放一个X。你能帮我添加一下吗?

这是我的代码

MainActivity.class

 package com.example.guidemo3;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;

public class MainActivity extends Activity {

   AutoCompleteTextView autocomplete;

   String[] stateName = { "France", "Philippines","Brazil", 
      "Italy", "United States"};

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

      autocomplete = (AutoCompleteTextView)             
      findViewById(R.id.autoCompleteTextView1);

      ArrayAdapter<String> adapter = new ArrayAdapter<String>  
      (this,android.R.layout.simple_dropdown_item_1line, stateName);

      autocomplete.setThreshold(1);
      autocomplete.setAdapter(adapter);

      autocomplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String stateName = autocomplete.getAdapter().getItem(position).toString();

                // Put selected state to intent.
                Intent intent = new Intent(MainActivity.this, NextActivity.class);
                intent.putExtra("selectedState", stateName);

                startActivity(intent);
            }
        });
      TextView cancelButton = (TextView) findViewById(R.id.cancelButton);
      cancelButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              autocomplete.setText("");
          }
      });


   }
}

activity.xml

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:focusableInTouchMode="true"
    >

   <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/search_view_border"
    android:orientation="horizontal">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:ems="20"
        android:hint="Search"
        android:padding="10dp">

        <requestFocus/>
    </AutoCompleteTextView>

    <TextView
        android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="  X  "
        android:textColor="#000"/>
</LinearLayout>

</RelativeLayout>

最佳答案

你必须在 AutoCompleteTextView 周围放置一个 LinearLayout 然后将背景添加到该布局中 在该布局中放置一个带有“X ”作为文本的 TextView 并添加一个 OnClickListener。

    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/search_view_border"
    android:orientation="horizontal">

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:ems="20"
        android:background="@android:color/transparent"
        android:hint="Search"
        android:padding="10dp">

        <requestFocus/>
    </AutoCompleteTextView>

    <TextView
        android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="  X  "
        android:textColor="@color/colorPrimaryDark"/>
</LinearLayout>

OnClickListener 看起来像这样:

    cancelButton = (TextView) findViewById(R.id.cancelButton);
    cancelButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            autocomplete.setText("");
        }
    });

关于android - 如何在 Android AutoCompleteTextView 中添加 x 或取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486290/

相关文章:

使用改造的 Android 自动完成 View

android - 在 JSONArray 中具有 JSON 对象的 Android 中的 JSON 解析

android - java.lang.NoClassDefFoundError : android. support.v7.appcompat.R$styleable

Android - 在操作栏内具有自动完成功能的搜索 View

android - 从联系人列表中获取姓名和电子邮件非常慢

android - AutoCompleteTextView 下拉列表显示在编辑字段上方而不是下方

Android - AutoCompleteTextView 下拉菜单和软输入键盘之间的边距

android - 我应该如何解决我在gradle sincing中的错误?

具有不同大小的Android ListView toRightOf ImageView无需调整图像大小

android - 内部类中的 Canvas ,android