2015-08-17 64 views
0

我正在制作一个生物医学应用程序,它提供信息并在此处被引用。我试图利用从应用程序中的数据库(.db文件)中提取信息的搜索功能。搜索功能似乎正在工作,但搜索引导用户到空白页面。我希望结果以列表视图呈现。我需要在我的showResults方法中使用搜索数据创建/填充列表视图? (我有一个空白列表视图的布局文件(search_results))。在列表视图中显示搜索结果

package com.joe.biomarker; 
    import android.app.Activity; 
    import android.app.SearchManager; 
    import android.content.Intent; 
    import android.database.Cursor; 
    import android.os.Bundle; 
    import android.widget.SimpleCursorAdapter; 
    import android.widget.ListAdapter; 

    public class SearchResultsActivity extends Activity { 


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



    handleIntent(getIntent()); 
} 

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 

    handleIntent(intent); 
} 

private void handleIntent(Intent intent) { 

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
     String query = intent.getStringExtra(SearchManager.QUERY); 

     showResults(query); 
    } 
} 

private void showResults(String query) { 
    // Query your data set and show results 
    // ... 
    Cursor results = mDataTableInstance(query, mColumnsArray); 
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(getContext(), R.layout.search_results, results, mFromArray, mToArray); 
    mListView.setAdapter(adapter); 
} 

    } 
+0

你想使用'SearchView'吗?如果是这样的话,首先使用'setOnQueryTextListener(SearchView.OnQueryTextListener listener)'在侦听器中你可以使用像'adapter.getFilter()。filter(newText)' – pskink

+0

这样的简单方法(约20行真实代码):https:/ /codeshare.io/aFQT7 – pskink

回答

1

你的问题还不清楚。如果您首先启动该意图,则必须将搜索拉动移至后台线程。为您的搜索功能创建AsyncTask,将您的适配器作为参数传输并覆盖onPostExecute()以致电adapter.notifyOnDataSetChanged()

+0

当用户搜索数据时,出现空白屏幕,并且他们看不到搜索结果。我想要使​​用搜索结果进行列表视图。如何将查询结果放入用户将看到的列表视图中? –

+0

首先用户搜索,然后提交?如果是这样,按照我写的。在“提交”操作 - 运行你的'AsyncTask'。然后在'onPoseExecute()'里面调用'.notifyOnDataSetChanged()'。 还是你想让它像一个实时的建议? –

+0

对,用户输入他想要搜索到的内容,然后点击回车。应用程序应该将其重定向到包含搜索结果的列表视图的另一个页面。现在应用程序进入第二页,但结果未显示。第二页只是一个空白的屏幕。 –