2014-09-25 100 views
1

我想在Android App中的searchView中设置文本。 setQuery不起作用。setQuery在searchView中

这是我的代码:

private SearchView searchPostalDelivery; 
     private PostalDeliveriesAdapter listAdapter; 
     private ExpandableListView myList; 

     private ArrayList<PostalDeliveries> postalDeliveryList = new ArrayList<PostalDeliveries>(); 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_tab_single_delivery); 

      SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
      searchPostalDelivery = (SearchView) findViewById(R.id.searchPostalDelivery); 
      searchPostalDelivery.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
      searchPostalDelivery.setIconifiedByDefault(false); 
      searchPostalDelivery.setOnQueryTextListener(this); 
      searchPostalDelivery.setOnCloseListener(this); 


      searchPostalDelivery.setQuery("test", false); 



     } 

}

+0

你想设置的提示或搜索查询? – 2014-09-25 12:34:50

回答

0

你有没有尝试过这样的:

searchPostalDelivery.setQueryHint("Query Hint"); 

,如果你想调用你的搜索活动,你可以这样做:

Intent i = new Intent(MyCurrentActivity.this,MySearchableActivity.class); 
    i.setAction(Intent.ACTION_SEARCH); 
    i.putExtra(SearchManager.QUERY,"Your barcode"); 
    startActivity(i); 

和i在您的可搜索活动中,您可以阅读您的查询。

+0

首先删除您的答案并使用评论,第二个'我想要在搜索字段上设置代码号码“,这意味着您要搜索该查询,我是对吗?你想把你自己的查询放在框中,几乎按下提交? – mmlooloo 2014-09-25 17:52:29

4

这里的解决方案:

final String query = getIntent().getStringExtra(SearchManager.QUERY); 

    if(!TextUtils.isEmpty(query) && mSearchView != null){ 

     mSearchView.post(new Runnable() { 
      @Override 
      public void run() { 

       MenuItemCompat.expandActionView(mSearchItem); 
       mSearchView.setQuery(query, true); 
      } 
     }); 
    }