操作栏中的Android SearchView无法正常工作

时间:2014-04-18 19:53:30

标签: android android-actionbar searchview

首先对不起,如果我是Android和java的新手,并且仍然希望为我的论文创建一些关于我正在创建的应用程序,我只是希望它在操作栏中有一个搜索视图,用于搜索特定的活动搜索我的自定义列表视图中的相应字母或单词...我不知道在" doMySearch(字符串查询)"得到结果。

SearchResultsActivity.java

  import android.app.ActionBar;
  import android.app.ListActivity;
  import android.app.SearchManager;
  import android.content.Intent;
  import android.os.Bundle;
  import android.widget.TextView;

  public class SearchResultsActivity extends ListActivity {

private TextView txtQuery;

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

    // get the action bar
    ActionBar actionBar = getActionBar();

    // Enabling Back navigation on Action Bar icon
    actionBar.setDisplayHomeAsUpEnabled(true);

    txtQuery = (TextView) findViewById(R.id.txtQuery);

    handleIntent(getIntent());
}

@Override
protected void onNewIntent(Intent intent) {
    setIntent(intent);
    handleIntent(intent);
}

/**
 * Handling intent data
 */
private void handleIntent(Intent intent) {
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);

        doMySearch(query);
        txtQuery.setText("Search Query: " + query);
    }
}

private void doMySearch(String query) {
    // TODO Auto-generated method stub
       ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.subject_list_layout, R.id.subject_course_title_row);
    return adapter;

}
}

Searchable.xml

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

的Manifest.xml

        <!-- Sample Search -->
    <activity
        android:name="com.randomlyroaming.com.loaopencourseware.courses.BSIT"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden" >
        <meta-data
            android:name="android.app.default_searchable"
            android:value=".SearchResultsActivity" />
    </activity>

    <!-- Search results activity -->
    <activity
        android:name=".SearchResultsActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

请帮助...它已经重定向到&#34; txtQuery.setText(&#34;搜索查询:&#34; +查询);&#34; 但没有结果......我是否需要把方法放在&#34; doMySearch(查询);&#34;我可以将它放在哪里以使其工作?..

谢谢你,你的帮助得到了很多赞赏......

1 个答案:

答案 0 :(得分:0)

  

但没有结果......我是否需要提供方法&#34; doMySearch(查询);

是的!它不应该显示任何内容,因为您只是将查询打印到TextView

如果您想访问SQLite数据库,更改ListView适配器或执行其他操作,则必须在该方法中实施。

回到你想要的,我想你想要使用查询来过滤ListView中的单词,对吗?无论如何,Here你有一个很好的教程。此外,this帖子可能对您有帮助。