1

我正在寻找一个示例,该示例显示了如何实现一个可点击的文本视图,该文本视图启动 Android 默认搜索对话框并显示选定的结果行。

它应该具有与 Android 上 Google 地图操作栏中的搜索字段相同的行为和设计(例如,左侧的放大镜图标,如果 textview 为空,则“搜索”提示,单击启动由可搜索定义的搜索对话框入口):

4

3 回答 3

1

这是EditText复合可绘制的自定义

public class SearchEditText extends EditText {

    private boolean mMagnifyingGlassShown = true;
    private Drawable mMagnifyingGlass;

    public SearchEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        mMagnifyingGlass = getCompoundDrawables()[0];
    }

    /**
     * Conditionally shows a magnifying glass icon on the left side of the text field
     * when the text it empty.
     */
    @Override
    public boolean onPreDraw() {
        boolean emptyText = TextUtils.isEmpty(getText());
        if (mMagnifyingGlassShown != emptyText) {
            mMagnifyingGlassShown = emptyText;
            if (mMagnifyingGlassShown) {
                setCompoundDrawables(mMagnifyingGlass, null, null, null);
            } else {
                setCompoundDrawables(null, null, null, null);
            }
            return false;
        }
        return super.onPreDraw();
    }

和xml

<view
                class="com.tr.search.SearchEditText"
                android:id="@+id/search_src_text"
                android:layout_height="wrap_content"
                android:layout_width="0dip"
                android:layout_weight="1.0"
                android:singleLine="true"
                android:ellipsize="end"
                android:hint="@string/search_bar_hint"
                android:drawableLeft="@drawable/magnifying_glass"
                android:freezesText="true"
            />

结果在此处输入图像描述

于 2012-06-19T03:27:23.013 回答
0

首先,您必须使用以下代码使您的 textView 可点击

TextView txtView =findViewById(R.id.txtView);
txtView.setOnClickListener(new OnClickListener(View v){
new OnClickListener() {

            @Override
        public void onClick(View v) {
            //Your Code for calling search ativity
        }
    });

对于搜索活动请参考这里

如果您使用的是 eclipse,那么还有一个用于 android sdk 中的搜索对话框的示例,然后只需单击

File->new->android Project->select sdk
->create project from  existing project sample
select searchableDictionary
于 2011-03-18T06:39:16.430 回答
0

您应该查看官方文档:http ://d.android.com/guide/topics/search/search-dialog.html

于 2011-03-18T06:34:09.980 回答