【问题标题】:Back button not working after displaying Contact显示联系人后后退按钮不起作用
【发布时间】:2012-07-27 19:08:15
【问题描述】:

我正在使用 Pro Android 4 中的“可点击列表项”代码。代码基本上是:

public class MainActivity extends ListActivity implements OnItemClickListener
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        CursorLoader loader = new CursorLoader(this, Contacts.CONTENT_URI, null,
            null, null, Contacts.DISPLAY_NAME + " ASC");
        Cursor cursor = loader.loadInBackground();

        String[] columns = new String[] { Contacts.DISPLAY_NAME };
        int[] views = new int[] { android.R.id.text1 };

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
            android.R.layout.simple_list_item_1, cursor, columns, views, 
                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
        setListAdapter(adapter);

        getListView().setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
    {
        Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, id);
        Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
        startActivity(intent);
    }
}

这一切都很好。我看到了联系人列表,当我点击一个名字时,它会打开那个人的通讯录。

问题是地址簿中的“后退”按钮不起作用。根据书,点击通讯录中的后退按钮应该让我回到上面的活动。但相反,我被带回了主屏幕。

我的应用程序仍在运行,当我手动切换到它时,我会返回它并且列表视图位于正确的上一个滚动位置等。

这是在 Android 4.1.1 上。我想知道我是否应该实施一些额外的措施来完成这项工作?

这是清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.contactslist"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.READ_CONTACTS"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

【问题讨论】:

  • 我可以看看你的清单文件吗?
  • 我使用您的确切代码复制/粘贴样式创建了一个快速应用程序,它对我来说工作得很好。唯一不起作用的是当我按下左上角的按钮以使用“人物”的应用程序查看全部...然后当我按下返回时,我最终进入主屏幕。但简单地按回就可以了。
  • 我遇到了同样的问题。解决方案你整理好了吗?

标签: android android-intent


【解决方案1】:

听起来你的 Activity 堆栈不知何故搞砸了。 在开始调用 startActivity(intent) 之前尝试添加以下内容

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

【讨论】:

  • 有人不同意 Activity 堆栈似乎有问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多