Запустить подменю, только если выполняется определенное условие - PullRequest
0 голосов
/ 24 июня 2011

Есть ли способ, когда по пункту меню щелкают, и прежде чем перейти к submenu, мы должны проверить условие, если оно действительно, мы запускаем submenu, если не мы , отменим .Пожалуйста, помогите мне, я застрял с этим ...

Спасибо

Ответы [ 3 ]

0 голосов
/ 24 июня 2011

okkk .. При возникновении проблемы вы должны попробовать вот так ..

public class Practice_TestActicvity extends Activity {
    SubMenu sub;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add("this is first menu");
        menu.add("this is second menu");
        sub = menu.addSubMenu(0, 1, 0, "SubMenu");
        // sub.add(0,11,0,"SubMenu 1");
        return super.onCreateOptionsMenu(menu);
    }

и

     @Override
            public boolean onMenuItemSelected(int featureId, MenuItem item) {
                if (item.getTitle().toString().equals("SubMenu")) {
sub.clear();
                    //you have to put here condtion like
    //if(this==this){
                    Toast.makeText(this, "this is cliked", Toast.LENGTH_LONG).show();
                    sub.add(0, 11, 0, "SubMenu 1");
    //}
    //else{//execute this code
    //}

                }
                return super.onMenuItemSelected(featureId, item);
            }

Теперь дайте мне знать, какой тип состояния вы хотите проверить?

0 голосов
/ 24 июня 2011

his сообщит вам, подключены ли вы к сети:

boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
            connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
        //we are connected to a network
        connected = true;
    }
    else
        connected = false;

Предупреждение. Если вы подключены к сети Wi-Fi, которая не имеет доступа к Интернету или требует аутентификации на основе браузера,подключено все равно будет true.

вам понадобится это разрешение в вашем manifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

, теперь вы можете применить эту логику для проверки доступности интернета с помощью меню

0 голосов
/ 24 июня 2011

Да Конечно:

Вы можете добавить / переопределить метод onOptionsItemSelected (элемент MenuItem), чтобы получить результаты.См. Пример ниже:

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.logout:
       if(islogout){
         //code if islogout is setted to true and procceed further for submenu
         return true;
        }else{
         //code if islogout is setted to False and display Toast that could not procceed further.
         return false;
        }

    default:
        return super.onOptionsItemSelected(item);
    }
 }

Надеюсь, это поможет.

Отметьте этот ответ правильно и с помощью UpVote он вам поможет!*

...