Ste*_*ntz 6 android android-intent
我正在使用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);
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常.我看到了联系人列表,当我点击一个名字时,它会打开该人的地址簿.
问题是后退按钮不能从地址簿中工作.根据这本书,点击地址簿中的后退按钮应该会让我回到上面的活动.但相反,我被带回主屏幕.
我的应用程序仍在运行,当我手动切换到它时,我回到它并且列表视图位于正确的前一个滚动位置,等等.
这是在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>
Run Code Online (Sandbox Code Playgroud)
听起来你的 Activity 堆栈不知怎的变得混乱了。在开始调用 startActivity(intent) 之前尝试添加以下内容
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |