Android 显示联系人后后退按钮不工作
我正在玩Pro Android 4中的“可点击列表项”代码。守则基本上是:Android 显示联系人后后退按钮不工作,android,android-intent,Android,Android Intent,我正在玩Pro Android 4中的“可点击列表项”代码。守则基本上是: public class MainActivity extends ListActivity implements OnItemClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CursorL
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);
}
}
public类MainActivity扩展了ListActivity实现了ListListener
{
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
CursorLoader loader=新的CursorLoader(此,Contacts.CONTENT_URI,null,
null,null,Contacts.DISPLAY_NAME+“ASC”);
Cursor=loader.loadInBackground();
字符串[]列=新字符串[]{Contacts.DISPLAY_NAME};
int[]视图=新int[]{android.R.id.text1};
SimpleCrsorAdapter=新的SimpleCrsorAdapter(此,
android.R.layout.simple_list_item_1、光标、列、视图、,
游标适配器。标志(寄存器、内容、观察者);
setListAdapter(适配器);
getListView().setOnItemClickListener(此);
}
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id)
{
Uri contactUri=ContentUris.withAppendedId(Contacts.CONTENT\u Uri,id);
意图=新意图(Intent.ACTION\u视图,contactUri);
星触觉(意向);
}
}
这一切都很好。我看到联系人列表,当我点击某个姓名时,它会打开此人的通讯簿
问题是“后退”按钮在通讯簿中不起作用。根据这本书,点击地址簿上的后退按钮应该会让我回到上面的活动。但是我被带回了主屏幕
我的应用程序仍在运行,当我手动切换到它时,我返回到它,列表视图处于正确的上一个滚动位置,等等
这是在安卓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>
听起来您的活动堆栈不知怎么搞砸了。 在开始调用startActivity(intent)之前,请尝试添加以下内容
我可以看看你的清单文件吗?我用你的代码复制/粘贴风格创建了一个快速的应用程序,它对我来说工作得很好。唯一一次它不工作是当我按下左上角的按钮使用“人”的应用程序查看所有。。。然后,当我按back键时,我会出现在主屏幕上。但是简单的后退就可以了,我也遇到了同样的问题。您是否已经解决了问题?是否有人不同意活动堆栈听起来似乎有问题?
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);