1

4 つのメニュー項目があり、それらを選択時に強調表示したいと考えています。を使用しようとしました 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;
}
4

1 に答える 1

2

現在の選択のみを強調表示する可能性はありますか?

あなたが強調したことを追跡してください。1 つを強調表示するときは、前のものから強調表示を削除します。

于 2013-03-29T17:35:36.487 に答える