在我的应用程序中,我已经编写了onkeyDown方法来处理我的菜单和后退按钮,当它在其中编写的活动正常工作时,它工作得很好,但是当我移动任何其他活动,然后再次返回到这个活动时,这个方法就不起作用了。
请让我知道我的错误是什么,或者可能的解决方案是什么?
@SuppressWarnings("unchecked")
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(mExpandableListView.isGroupExpanded(commonGroupPosition)&& keyCode == KeyEvent.KEYCODE_MENU){
if(mllpopmenu.getVisibility() == View.VISIBLE){
mllpopmenu.setVisibility(View.INVISIBLE);
}
//Toast.makeText(getApplicationContext(), "Chat Expanded Menu", Toast.LENGTH_SHORT).show();
else{
if(commonGroupPosition>=4){
mllpopmenu.setVisibility(View.VISIBLE);
mlist2.setAdapter(new ArrayAdapter(UserMenuActivity.this,
R.layout.listviewtext, R.id.tvMenuText,
data_Contact));
}
else if(commonGroupPosition==1){
mllpopmenu.setVisibility(View.VISIBLE);
mlist2.setAdapter(new ArrayAdapter(UserMenuActivity.this,
R.layout.listviewtext, R.id.tvMenuText,
data_child_contact));
}
}
return true;
}
else{
if (keyCode == KeyEvent.KEYCODE_MENU) {
if (mllpopmenu.getVisibility() == View.VISIBLE) {
mllpopmenu.setVisibility(View.INVISIBLE);
}
else if(commonGroupPosition==0){
mllpopmenu.setVisibility(View.VISIBLE);
mlist2.setAdapter(new ArrayAdapter(UserMenuActivity.this,
R.layout.listviewtext, R.id.tvMenuText, data));
}
return true;
}
}
if(keyCode==KeyEvent.KEYCODE_BACK){
//Toast.makeText(UserMenuActivity.this, "Returning..", Toast.LENGTH_SHORT).show();
if (mllpopmenu.getVisibility() == View.VISIBLE) {
mllpopmenu.setVisibility(View.INVISIBLE);
} else {
if (CCMStaticVariable.CommonConnection.isConnected()) {
//super.onBackPressed();
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("CCM Logout");
alertDialog.setMessage("Are you sure you want to logout?");
alertDialog.setIcon(R.drawable.ic_launcher);
//Ok button for Logout
alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
CCMStaticVariable.CommonConnection.disconnect();
Intent serviceIntent = new Intent(UserMenuActivity.this,UpdaterService.class);
stopService(serviceIntent);
//CCMStaticVariable.CommonConnection.removeConnectionListener(arg0);
finish();
}
});
//Cancel button
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});
alertDialog.show();
}
}
return true;
}
return super.onKeyDown(keyCode, event);
}谢谢
发布于 2014-01-12 15:30:40
我想可能是因为您处理事件的onKeydown() method.If的返回值,所以返回true。如果您想让事件由下一个接收方处理,则返回false。我猜如果您将返回值更改为true,它可能会起作用。
http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown(int
希望它能起作用。:)
https://stackoverflow.com/questions/13133216
复制相似问题