У меня есть четыре пункта меню, и я хочу, чтобы они были выделены при выборе. Я пытался использовать item.setIcon()
, он отлично работает, но когда я выбираю другой пункт меню, предыдущий также выделяется. Есть ли возможность сделать выделение только текущего выделения?Как выделить пункт меню на выбор?
Это мой menu.xml
<item
android:id="@+id/home"
android:showAsAction="always"
android:title="Home"
android:icon="@drawable/home72"/>
<item
android:id="@+id/location"
android:showAsAction="always"
android:title="Locations"
android:icon="@drawable/locations72"/>
<item
android:id="@+id/preQualify"
android:showAsAction="always"
android:title="Pre-Qualify"
android:icon="@drawable/prequalify72"/>
<item
android:id="@+id/products"
android:showAsAction="always"
android:title="Products"
android:icon="@drawable/products72"/>
Это мой Java файл:
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.home:
//item.setIcon(icon);
final ProgressDialog homeDialog = new ProgressDialog(this);
homeDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
homeDialog.setCancelable(false);
storeLocator = (WebView) findViewById(R.id.storeLocator);
storeLocator.setWebViewClient(new WebViewClient());
storeLocator.getSettings().setJavaScriptEnabled(true);
//storeLocator.getSettings().setBuiltInZoomControls(true);
storeLocator.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
homeDialog.show();
homeDialog.setProgress(0);
activity.setProgress(progress * 1000);
homeDialog.incrementProgressBy(progress);
if(progress == 100 && homeDialog.isShowing())
homeDialog.dismiss();
}
});
storeLocator.loadUrl("xxxx");
//item.setIcon(R.drawable.homew);
/*Toast.makeText(this, "Home selected", Toast.LENGTH_SHORT)
.show();*/
break;
case R.id.location:
final ProgressDialog locationDialog = new ProgressDialog(this);
locationDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
locationDialog.setCancelable(false);
storeLocator = (WebView) findViewById(R.id.storeLocator);
storeLocator.setWebViewClient(new WebViewClient());
storeLocator.getSettings().setJavaScriptEnabled(true);
//storeLocator.getSettings().setBuiltInZoomControls(true);
storeLocator.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
locationDialog.show();
locationDialog.setProgress(0);
activity.setProgress(progress * 1000);
locationDialog.incrementProgressBy(progress);
if(progress == 100 && locationDialog.isShowing())
locationDialog.dismiss();
}
});
storeLocator.loadUrl("xxxx");
//item.setIcon(R.drawable.lcoationw);
/*Toast.makeText(this, "Location selected", Toast.LENGTH_SHORT)
.show();*/
break;
}
как отследить выбор? Я не могу понять это! –
@AnilM: Сохраните последний элемент «MenuItem» в элементе данных вашей активности. – CommonsWare