在Android应用搜索界面的问题 [英] problems with search interface in android app

查看:743
本文介绍了在Android应用搜索界面的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我想创建一个Android应用搜索界面。我也跟着Android开发者教程,但我仍然得到错误。我不知道我在哪里出了问题,请帮忙!我试图将搜索插件在我的应用程序的布局整合。下面是我迄今所做的:

的Manifest.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    包=com.example.amazonsearch
    安卓版code =1
    机器人:=的versionName1.0>    <用途-SDK
        安卓的minSdkVersion =8
        机器人:targetSdkVersion =17/>    <应用
        机器人:allowBackup =真
        机器人:图标=@绘制/ ic_launcher
        机器人:标签=@字符串/ APP_NAME
        机器人:主题=@风格/ AppTheme>
           <活动
            机器人:名字=com.example.amazonsearch.MainActivity
            机器人:标签=@字符串/ APP_NAME>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
           <! - 这是搜索的活动;它执行的搜索 - >
    <活动机器人:名字=机器人SearchableActivity:launchMode =singleTop>
        &所述;意图滤光器>
            <作用机器人:名字=android.intent.action.SEARCH/>
        &所述; /意图滤光器>
        <元数据机器人:名字=android.app.searchable
                   机器人:资源=@ XML /搜索/>
    < /活性GT;    <! - 这个活动使搜索对话框启动搜索
         在SearchableActivity - >
    <活动机器人:名字=。OtherActivity>
        <! - 使搜索对话框发送搜索,SearchableActivity - >
        <元数据机器人:名字=android.app.default_searchable
                   SearchableActivity:机器人值= />
    < /活性GT;
    < /用途>< /清单>

MainActivity.java

 包com.example.amazonsearch;进口android.os.Bundle;
进口android.app.Activity;
进口android.app.SearchManager;
进口android.content.Context;
进口android.view.Menu;
进口android.view.MenuInflater;
进口android.widget.SearchView;公共类MainActivity延伸活动{    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
    }
    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        //从充气XML选项菜单
        MenuInflater吹气= getMenuInflater();
        inflater.inflate(R.menu.options_menu,菜单);        //获取搜索查看并设置搜索的配置
        SearchManager的SearchManager的=(SearchManager的)getSystemService(Context.SEARCH_SERVICE);
        搜索查看搜索查看=(搜索查看)menu.findItem(R.id.menu_search).getActionView();
        //假设当前的活动是搜索活动
        sea​​rchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        sea​​rchView.setIconifiedByDefault(假); //不要图标化的工具;默认情况下展开        返回true;
    }}

SearchableActivity.java

 包com.example.amazonsearch;进口android.app.ListActivity;
进口android.app.SearchManager;
进口android.content.Intent;
进口android.os.Bundle;
进口android.util.Log;公共类SearchableActivity扩展ListActivity {    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);        的setContentView(R.layout.searchresults);        最终意图queryIntent = getIntent();
        最后弦乐queryAction = queryIntent.getAction();
        如果(Intent.ACTION_SEARCH.equals(queryAction)){
            字符串searchKeywords = queryIntent.getStringExtra(SearchManager.QUERY);
            Log.i(您输入searchKeywords);
        }
    }
}

searchable.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<搜索的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>
    机器人:标签=@字符串/ app_label
    机器人:提示=@字符串/ search_hint>
< /搜索>

这是以下错误:

  [2013年4月21日16时03分36秒 -  com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper]对于E分析器例外:\\工作区\\ AmazonSearch \\ AndroidManifest.xml中:元素类型的活动必须后跟属性规范>中或/>中。
[2013年4月21日16时03分36秒 - AmazonSearch]错误在一个XML文件:中止建设。
说明资源路径位置类型
menu_search不能得到解决或不是一个领域MainActivity.java / AmazonSearch / src目录/ COM /例子/ amazonsearch 28行Java问题说明资源路径位置类型
options_menu不能得到解决或不是一个领域MainActivity.java / AmazonSearch / src目录/ COM /例子/ amazonsearch线24 Java问题说明资源路径位置类型
SearchResult所不能得到解决或不是一个领域SearchableActivity.java / AmazonSearch / src目录/ COM /例子/ amazonsearch线15 Java问题


解决方案

您搜索有两个右括号。试试这个

 <?XML版本=1.0编码=UTF-8&GT?;
<搜索的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:标签=@字符串/ app_label
    机器人:提示=@字符串/ search_hint>
< /搜索>

Hi I am trying to create the search interface for an android app. I have followed the android developers tutorial but I'm still getting errors. I don't know where I have gone wrong, please help! I'm trying to integrate a search widget in the layout of my app. Below is what I have done so far:

Manifest.xml

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.amazonsearch"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
           <activity
            android:name="com.example.amazonsearch.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
           <!-- this is the searchable activity; it performs searches -->
    <activity android:name=".SearchableActivity" android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
                   android:resource="@xml/searchable"/>
    </activity>

    <!-- this activity enables the search dialog to initiate searches
         in the SearchableActivity -->
    <activity android:name=".OtherActivity" >
        <!-- enable the search dialog to send searches to SearchableActivity -->
        <meta-data android:name="android.app.default_searchable"
                   android:value=".SearchableActivity" />
    </activity>
    </application>

</manifest>

MainActivity.java

package com.example.amazonsearch;

import android.os.Bundle;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.view.Menu;
import android.view.MenuInflater;
import android.widget.SearchView;

public class MainActivity extends Activity {

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the options menu from XML
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.options_menu, menu);

        // Get the SearchView and set the searchable configuration
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
        // Assumes current activity is the searchable activity
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(false); // Do not iconify the widget; expand it by default

        return true;
    }



}

SearchableActivity.java

package com.example.amazonsearch;

import android.app.ListActivity;
import android.app.SearchManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class SearchableActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.searchresults);

        final Intent queryIntent = getIntent();
        final String queryAction = queryIntent.getAction();
        if (Intent.ACTION_SEARCH.equals(queryAction)) {
            String searchKeywords = queryIntent.getStringExtra(SearchManager.QUERY);
            Log.i("YOU ENTERED", searchKeywords);
        }
    }
}

searchable.xml

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android" >
    android:label="@string/app_label"
    android:hint="@string/search_hint" >
</searchable>

These are the following errors:

[2013-04-21 16:03:36 - com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper] Parser exception for E:\Workspace\AmazonSearch\AndroidManifest.xml: Element type "activity" must be followed by either attribute specifications, ">" or "/>".
[2013-04-21 16:03:36 - AmazonSearch] Error in an XML file: aborting build.


Description Resource    Path    Location    Type
menu_search cannot be resolved or is not a field    MainActivity.java   /AmazonSearch/src/com/example/amazonsearch  line 28 Java Problem

Description Resource    Path    Location    Type
options_menu cannot be resolved or is not a field   MainActivity.java   /AmazonSearch/src/com/example/amazonsearch  line 24 Java Problem

Description Resource    Path    Location    Type
searchresults cannot be resolved or is not a field  SearchableActivity.java /AmazonSearch/src/com/example/amazonsearch  line 15 Java Problem

解决方案

Your searchable has two closing brackets. Try this

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_label"
    android:hint="@string/search_hint" >
</searchable>

这篇关于在Android应用搜索界面的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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