0

有没有办法在单击菜单项之前,在去之前submenu我们必须检查一个条件,如果它是有效的,我们会启动submenuif not we cancel。请帮助我,我坚持下去......

谢谢

4

3 回答 3

0

是的当然:

您可以添加/覆盖 onOptionsItemSelected(MenuItem item) 方法来获取结果。请参见下面的示例:

 @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 它可以帮助您!

谢谢
sHaH

于 2011-06-24T10:29:56.490 回答
0

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);
            }

现在让我知道您要检查哪种类型的情况?

于 2011-06-24T10:51:36.043 回答
0

如果您已连接到网络,他会告诉您:

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;

警告:如果您连接到不包括互联网访问或需要基于浏览器的身份验证的 WiFi 网络,则已连接仍为 true。

您将需要此权限manifest
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

现在您可以应用此逻辑通过菜单检查互联网可用性

于 2011-06-24T11:10:38.030 回答