android 在我的应用中 为什么按返回键不能返回到主菜单

陈怡欣 发布于 2012/02/17 10:05
阅读 4K+
收藏 0

在我的android应用中的启动的第一个activity中,在这个activity中按下返回键后不能返回主菜单,请问事我的程序有问题还是怎么回事。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if(keyCode==5){
        text=(EditText)findViewById(R.id.editnumber);
        String number="";
        if(text.getText() !=null){
            number=text.getText().toString();
            Uri uri=Uri.parse("tel:"+2355);
            Intent intent=new Intent(Intent.ACTION_CALL,uri);
            startActivity(intent);
        }
    }
    return false;
} 

程序里有这段代码,加上去之后返回键没用,去掉之后就没问题了。

加载中
1
迷途d书童
迷途d书童
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if(keyCode==5){
        text=(EditText)findViewById(R.id.editnumber);
        String number="";
        if(text.getText() !=null){
            number=text.getText().toString();
            Uri uri=Uri.parse("tel:"+2355);
            Intent intent=new Intent(Intent.ACTION_CALL,uri);
            startActivity(intent);
        }
        return true;
    }
    return false;
} 

你进入判断后没返回true;
0
红薯
红薯
你程序里有什么特殊处理吗?
陈怡欣
陈怡欣
就是写了一些简单的功能,我在想是不是那个我写的方法跟返回键冲突了还是怎么,特殊处理貌似是没有啊?什么叫特殊处理啊
0
红薯
红薯
把代码贴出来看看呗
陈怡欣
陈怡欣
刚刚贴出来了,你看看
0
陈怡欣
陈怡欣

引用来自“红薯”的答案

把代码贴出来看看呗
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==5){ text=(EditText)findViewById(R.id.editnumber); String number=""; if(text.getText() !=null){ number=text.getText().toString(); Uri uri=Uri.parse("tel:"+2355); Intent intent=new Intent(Intent.ACTION_CALL,uri); startActivity(intent); } } return false; } 程序里有这段代码,加上去之后返回键没用,去掉之后就没问题了
0
伟强

return super.onKeyDown(keyCode, event);

return true或false的没效果

0
樱凌轩
樱凌轩
返回键的keyCode=4.
0
李天然
李天然

突然看到这个,翻看了一下源码,android好像都是这么用的,而不是直接写数字,这也是javaSE的编程习惯把。

/** Key code constant: Back key. */
    public static final int KEYCODE_BACK            = 4;
    /** Key code constant: Call key. */
    public static final int KEYCODE_CALL            = 5;


public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getApplicationInfo().targetSdkVersion
                    >= Build.VERSION_CODES.ECLAIR) {
                event.startTracking();
            } else {
                onBackPressed();
            }
            return true;
        }

返回顶部
顶部