如何在AutoCompleteTextView Android中放置x或取消 [英] How to put an x or cancel in AutoCompleteTextView Android

查看:92
本文介绍了如何在AutoCompleteTextView Android中放置x或取消的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

This is the app that I am developing. I am using AutoCompleteTextView.

我想在其中放一个X.您能帮我补充一下吗?

I want to put an X inside it. Can you help me adding that?

这是我的代码

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.

You have to put a LinearLayout around your AutoCompleteTextView Then add your Background to that Layout Place a TextView with an " X " as Text inside that Layout an add an 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看起来像这样:

OnClickListener would look like this:

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

这篇关于如何在AutoCompleteTextView Android中放置x或取消的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆