有没有办法在单击菜单项之前,在去之前submenu
我们必须检查一个条件,如果它是有效的,我们会启动submenu
if not we cancel。请帮助我,我坚持下去......
谢谢
是的当然:
您可以添加/覆盖 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
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);
}
现在让我知道您要检查哪种类型的情况?
如果您已连接到网络,他会告诉您:
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" />
现在您可以应用此逻辑通过菜单检查互联网可用性