如何在AutoCompleteTextView Android中放置x或取消

如何在AutoCompleteTextView Android中放置x或取消,android,autocompletetextview,Android,Autocompletetextview,这是我正在开发的应用程序。 我正在使用AutoCompleteTextView 我想在里面放个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.widge

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

我想在里面放个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("");
          }
      });


   }
}
package com.example.guidemo3;
导入android.os.Bundle;
导入android.app.Activity;
导入android.content.Intent;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.AutoCompleteTextView;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
自动完成文本视图自动完成;
字符串[]stateName={“法国”、“菲律宾”、“巴西”,
“意大利”、“美国”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
自动完成=(自动完成文本视图)
findViewById(R.id.autoCompleteTextView1);
ArrayAdapter适配器=新的ArrayAdapter
(这是android.R.layout.simple\u下拉列表\u item\u 1line,stateName);
自动完成。设置阈值(1);
自动完成。设置适配器(适配器);
autocomplete.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串stateName=autocomplete.getAdapter().getItem(位置).toString();
//将所选状态设置为意图。
意向意向=新意向(MainActivity.this,nextractivity.class);
intent.putExtra(“selectedState”,stateName);
星触觉(意向);
}
});
TextView cancelButton=(TextView)findViewById(R.id.cancelButton);
cancelButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
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周围放置一个线性布局 然后将背景添加到该布局中 在该布局内放置一个文本视图,并添加一个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>

参考希望您能帮助您我没有使用edittext我只是使用AutoCompleteTextView。检查我的代码。在AutoCompleteTextViews中的checkout for clean按钮您也可以使用可绘制的,而不是X。这只是一个示例,什么都没有发生。我更新我的代码。只要检查是正确的。
    cancelButton = (TextView) findViewById(R.id.cancelButton);
    cancelButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            autocomplete.setText("");
        }
    });