clcurie_11 2013-05-27 07:14 采纳率: 6.7%
浏览 3078

Android 查询功能使用一个 EditText 中的字符串

Android 中的搜索功能在程序中可以执行。我使用 onSearchRequested();来调用搜索功能
现在我不想使用onSearchRequested(); 把一个字符串从一个 EditText 传递到 search 方法中,并把结果显示在list中。
当调用onSearchRequested时,search 方法可以运行。

SearchPage Activity:

 DBHelper = new DBAdapter(this);
    DBHelper.open();
    Intent intent = getIntent();
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        showResults(query);
     }

 private void showResults(String query) {
    Cursor cursor = DBHelper.searchDB(query);
    startManagingCursor(cursor);
    String[] searchFrom = new String[] { DBAdapter.KEY_YEAR,
            DBAdapter.KEY_MAKE, DBAdapter.KEY_MODEL };
    int[] displayHere = new int[] { R.id.rYearTV, R.id.rMakeTV,
            R.id.rModelTV };
    final SimpleCursorAdapter records = new SimpleCursorAdapter(this,
            R.layout.record_2, cursor, searchFrom, displayHere);
    setListAdapter(records);

DBAdapter Activity:

  //--- 从 search 中获得 records
    public Cursor searchDB(String query) { 

    String[] parts = query.split(" "); 

    String queryString = ""; 
    for(int i = 0; i < parts.length; i++) { 
        queryString += KEY_YEAR + " LIKE '%" + parts[i] + "%' OR "; 
        queryString += KEY_MAKE + " LIKE '%" + parts[i] + "%' OR "; 
        queryString += KEY_MODEL + " LIKE '%" + parts[i] + "%'"; 
        if(i != (parts.length - 1)) { 
            queryString += " OR "; 
        } 
    } 

    return db.query(true, DB_TABLE,  
        new String[] { KEY_ROWID, KEY_SDATE, KEY_YEAR, KEY_MAKE, KEY_MODEL },  
        queryString, null, null, null, null, null); 
}
    //---  从 Search 中获取 Records

我想传递一个字符串到 search 函数 String searchData = searchEditText.getText().toString();,点击 "Search"按钮,search 函数可以正常运行。如何开始?

  • 写回答

1条回答

  • 码界一棵葱 2016-08-19 02:50
    关注

    请问你的问题解决了么,我碰到和你一样的问题!

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能