后退按钮中显示联系人

后退按钮中显示联系人

问题描述:

我玩的“可点击列表项”代码的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> 
+0

我可以看到您的清单文件吗? – Erol 2012-07-27 23:29:32

+0

我使用你的确切代码复制/粘贴样式创建了一个快速应用程序,它对我来说工作得很好。唯一一次不起作用的是当我按左上角的按钮使用“人物”的应用程序查看全部...然后当我按回时,我最终在主屏幕上。但简单地按下就行了。 – RyanInBinary 2012-08-07 20:28:51

+0

我遇到了同样的问题。你整理了解决方案吗? – bivy 2012-10-30 13:03:03

听起来像是你的活动堆栈是越来越搞砸了不知。 尝试添加以下内容,然后再开始呼叫startActivity(intent)

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

有人不同意它听起来像活动堆栈似乎有问题吗? – 2012-08-14 13:24:11