1
我有我的android actionBar搜索圖標。當我在搜索片段中時,它會自動擴展並打開鍵盤進行搜索。無法關閉搜索框在行動條
當您搜索它時填充列表視圖,然後單擊一個項目加載一個新的片段。我正試圖關閉搜索框,當新的片段加載時,圖標回到只是圖標,所以鍵盤將消失,但它不工作。
我的打開和關閉應當在搜索框的片段代碼:
public class BeerPage extends Fragment {
public BeerPage(){}
String beerId = "";
SearchView searchView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.beer_page, container, false);
setHasOptionsMenu(true);
getActivity().setTitle("Beer");
//body code goes here
//get user information
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
String userName = prefs.getString("userName", null);
String userID = prefs.getString("userID", null);
//get bundled data
Bundle args = getArguments();
beerId = args.getString("beerIDSent");
TextView bt = (TextView)rootView.findViewById(R.id.beerBreweryName);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do whatever stuff you wanna do here
//todo: launch new brewery page
Fragment Fragment_one;
FragmentManager man= getFragmentManager();
FragmentTransaction tran = man.beginTransaction();
Fragment_one = new BreweryPage();
final Bundle bundle = new Bundle();
bundle.putString("beerIDSent", beerId);
Fragment_one.setArguments(bundle);
tran.replace(R.id.main, Fragment_one);//tran.
tran.addToBackStack(null);
tran.commit();
}
});
TextView bt2 = (TextView)rootView.findViewById(R.id.beerStyleName);
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do whatever stuff you wanna do here
//todo: launch new brewery page
Fragment Fragment_two;
FragmentManager man= getFragmentManager();
FragmentTransaction tran = man.beginTransaction();
Fragment_two = new StylePage2();
final Bundle bundle = new Bundle();
bundle.putString("beerIDSent", beerId);
Fragment_two.setArguments(bundle);
tran.replace(R.id.main, Fragment_two);//tran.
tran.addToBackStack(null);
tran.commit();
}
});
Button bt3 = (Button)rootView.findViewById(R.id.buttonTasteTag);
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do whatever stuff you wanna do here
//todo: launch new brewery page
Fragment Fragment_three;
FragmentManager man= getFragmentManager();
FragmentTransaction tran = man.beginTransaction();
Fragment_three = new TasteTags2();
final Bundle bundle = new Bundle();
bundle.putString("beerIDSent", beerId);
Fragment_three.setArguments(bundle);
tran.replace(R.id.main, Fragment_three);//tran.
tran.addToBackStack(null);
tran.commit();
}
});
String url = "http://api.brewerydb.com/v2/beer/"+ beerId +"?key=0cdb22f84315834cc807c0176a927060&format=json&withBreweries=y";
new GetBeerDataJSON(getActivity(), beerId).execute(url);
return rootView;
}
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
// Inflate the menu; this adds items to the action bar if it is present.
super.onCreateOptionsMenu(menu, inflater);
//inflater.inflate(R.menu.main, menu);
searchView = (SearchView) menu.findItem(R.id.menu_search2).getActionView();
searchView.setIconified(true);
}
}
實際上,它是不是有方法collapseActionView搜索視圖,但菜單項。在上面的代碼中,菜單項是menu.findItem(R.id.menu_search2)的返回值。 – dschulten