2016-10-04 5 views
0

メニューにsearchviewがあり、ボタンがあります。ボタンをクリックすると、検索ビューを開くためにsearchviewが必要になります。これは、検索テキストを入力するためにsearchviewにフォーカスがあることを意味します。ボタンをクリックしたときにメニュー内のsearchviewにフォーカスする

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_fooddoof, menu); 

    searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search)); 
     TextView searchText = (TextView) 
      searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 
    Typeface myCustomFont = Typeface.createFromAsset(getAssets(), "fonts/ProximaNovaRgRegular.ttf"); 
    searchText.setTypeface(myCustomFont); 


    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
       Intent intent = new Intent(descStore.this, listdisplay.class); 
       intent.putExtra("deskey", query); 
       startActivity(intent); 
       return false; 

     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      //android.widget.Filter filter = descAdapter.getFilter(); 
      //filter.filter(newText); 
      return true; 

     } 
    }); 

    searchView.setSubmitButtonEnabled(true); 
    return true; 

} 

ボタンクリック:

@Override 
public void onClick(View v) { 
    if (v == mViews.description1) { 
     searchview.seticonified(false); 
    } 

} 

を私はseticonifiedオプションを試してみたが、それは動作しません。助けてください。

答えて

0

あなたは以下のようにsearchviewのフォーカスを要求することができる

@Override 
     public void onClick(View v) { 
       switch (view.getId()) { 
       case R.id.your_button_id: 
        searchview.seticonified(false); 
        searchview.requestFocus(); //request focus of the view 
       break; 
      } 
     } 
関連する問題