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

标签 android actionbarsherlock autocompletetextview searchview

我想构建一个应用程序,其中包含 sherlock 操作栏和搜索 View 。但是,我希望此搜索 View 具有自动完成功能,如 autocompleteTextView 所具有的功能。是否有任何直接的实现可以单独使用 searchview 来做到这一点?还是我应该在操作栏中使用 autocompleteTextView 来执行此操作?我在那里找到了几个帖子,但没有一个对我有帮助。这些帖子只谈论创建一个 autocompleteTextView ,但我希望搜索 View 具有此功能。知道怎么做吗?

最佳答案

为此,我使用 AutoCompleteTextView 创建了一个布局,并将其添加到 ActionBar 中调用 Custom layout in ActionBar.

之后,我使用 android.R.layout.simple_dropdown_item_1line 创建适配器。在 AutoCompleteTextView 中设置它。

检查下面的代码:

enter image description here

package com.example.testapp;

import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

@TargetApi(11)
public class MainActivity extends Activity {

    private static final String[] COUNTRIES = new String[] { "Belgium",
            "France", "France_", "Italy", "Germany", "Spain" };

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

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setDisplayShowCustomEnabled(true);
        // actionBar.setDisplayShowTitleEnabled(false);
        // actionBar.setIcon(R.drawable.ic_action_search);

        LayoutInflater inflator = (LayoutInflater) this
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflator.inflate(R.layout.actionbar, null);

        actionBar.setCustomView(v);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        AutoCompleteTextView textView = (AutoCompleteTextView) v
                .findViewById(R.id.editText1);
        textView.setAdapter(adapter);

    }

}

你的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Action Bar:"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#FFFFFF" />

    <AutoCompleteTextView
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:imeOptions="actionSearch"
        android:inputType="textAutoComplete|textAutoCorrect"
        android:textColor="#FFFFFF" >

        <requestFocus />
    </AutoCompleteTextView>

</LinearLayout>

有关更多详细信息,请查看此文章:one , twothree

祝你好运!

关于Android - 在操作栏内具有自动完成功能的搜索 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805397/

相关文章:

java - 按钮没有出现在我的线性布局中

java - 在 Android 中监控电池电量的正确优化方法

android - Google Maps Android v2 不适用于 ActionBarSherlock fragment Activity

android - AutoCompleteTextView 下拉列表显示空 textView

android - 带有 MySQL 数据的 AutoCompleteTextView

java - Android 将 apk 与应用程序集成

java - Android BackupManager 在卸载或其他设备后无法恢复?

android - Android 中的 SherlockBar 4.0 和 PreferenceFragment

android-viewpager - ActionbarSherlock 和 ViewpagerIndicator : how to add different actionbar menu to different Page in ViewPagerIndicator using fragment

android - 应在之后检测到文本更改