带有提示和图像的 Android 可点击 TextView 以启动搜索对话框并显示所选结果

Posted

技术标签:

【中文标题】带有提示和图像的 Android 可点击 TextView 以启动搜索对话框并显示所选结果【英文标题】:Android clickable TextView with hint and image to start search dialog and present selected result 【发布时间】:2011-07-17 22:51:39 【问题描述】:

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

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

【问题讨论】:

【参考方案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_
                android:layout_
                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"
            />

结果

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

首先,您必须使用以下代码使您的 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
        
    );

搜索活动请参考here

还有一个例子是在 android sdk 中的搜索对话框 如果您使用的是 eclipse,那么只需点击

File->new->android Project->select sdk
->create project from  existing project sample
select searchableDictionary

【讨论】:

感谢您的快速回答。我知道搜索对话框分别是蜂窝的新搜索小部件。问题集中在文本视图的布局(如在谷歌地图应用程序中),而不是搜索对话框的处理(例如 onSearchRequested 等)。如何实现一个包含提示的文本视图,在文本视图(内部)的左侧有一个放大镜,但它的作用就像一个按钮?是否有任何可以应用的资源/样式(android.R.*)?在此先感谢,Thorsten

以上是关于带有提示和图像的 Android 可点击 TextView 以启动搜索对话框并显示所选结果的主要内容,如果未能解决你的问题,请参考以下文章

带有文本和图像的 Android 按钮

如何在android中将EditText提示创建为带有图像的文本

Google Maps Android API v2 - 带有可点击按钮的信息窗口

带有提示的编辑文本中的 Android 可访问性

可点击的网站图像不适用于 iphone 和 android 设备

Flexbox 高度和背景图像高度