1

我开发了一个应用程序,在某处有一个图像按钮。

ImageButton buttoncalllog = (ImageButton)findViewById(R.id.imageButton2);
    buttoncalllog.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            Intent showCallLog = new Intent();
            showCallLog.setAction(Intent.ACTION_VIEW);
            showCallLog.setType(CallLog.Calls.CONTENT_TYPE);
            startActivity(showCallLog);
            finish();
        }
    });

这个按钮,当它被点击时,它会打开联系人列表。问题是我无法返回我的应用程序!当我按下返回按钮到我的设备时,什么也没有发生......如果我杀死我的应用程序并再次打开它,第一个屏幕又是联系人列表!我必须重新启动设备或重新安装应用程序!有什么帮助吗?

编辑 :

我删除了对 的调用finish(),但是当我按回车键时它仍然没有返回。我更新的代码:

ImageButton buttoncalllog = (ImageButton)findViewById(R.id.imageButton2);
    buttoncalllog.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            Intent showCallLog = new Intent();
            showCallLog.setAction(Intent.ACTION_VIEW);
            showCallLog.setType(CallLog.Calls.CONTENT_TYPE);
            startActivity(showCallLog);

        }
    });
4

3 回答 3

3

finish()启动Intent. _

finish()用于杀死一个 Activity,只有当你想完成你的 Activity时才应该调用它。由于您在启动 Intent 后正在终止您的应用程序,因此当您按下返回按钮时,应用程序无法返回任何内容。

ImageButton buttoncalllog = (ImageButton)findViewById(R.id.imageButton2);
    buttoncalllog.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            Intent showCallLog = new Intent();
            showCallLog.setAction(Intent.ACTION_VIEW);
            showCallLog.setType(CallLog.Calls.CONTENT_TYPE);
            startActivity(showCallLog);
        }
    });
于 2013-03-10T07:39:29.383 回答
0

首先不要打电话finish

此外,您应该调用startActivityForResult以接收用户选择的选项

阅读此处了解更多信息

于 2013-03-10T07:42:29.323 回答
0

你检查你的清单文件了吗?您可能需要确保为应用程序定义了父活动。<meta-data android:value="com.example.parentactivity"在您的活动标签下检查

于 2013-03-10T08:55:09.010 回答