- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我的应用中,我对项目列表进行建模。在 MainActivity 中,我看到包含列表的 ListView。我可以单击每个列表以查看其项目 (DisplayListActivity)。在 DisplayListActivity 上,我在 ActionBar 中有按钮来显示列表属性。这将启动第三个 Activity (EditListPropertiesActivity)。
Main
| ^
V |
DisplayListActivity (listId is passed with Intent, default=1)
| ^
V |
EditListPropertiesActivity (listId is passed with Intent, default=1)
当我在 MainActivity 上选择 List id=2,然后在 DisplayListActivity 上选择属性按钮时,问题出现了。完成 EditListPropertiesActivity 后,我单击 ActionBar 上的“<”(返回): .
我返回到 DisplayListActivity,但我没有返回到列表 id=2,而是看到了 id=1(默认)的列表。
如何将 ListId 从 EditListPropertiesActivity 传回给 DisplayListActivity?
该问题的通常解决方案是什么?
下面的代码 fragment 。
主 Activity
public class MainActivity extends Activity {
...
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
MetaList mlist = (MetaList) listView.getItemAtPosition(i);
final Intent intent;
intent = new Intent(getApplicationContext(), DisplayListActivity.class);
intent.putExtra(META_LIST_SELECTED, mlist.getId());
startActivity(intent);
}
}
);
...
显示列表 Activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_list);
intent = getIntent();
metaListId = intent.getLongExtra(MainActivity.META_LIST_SELECTED, 1); //read the data or take 1 as default
...
//start the third activity
final Intent intent;
intent = new Intent(getApplicationContext(), EditListPropertiesActivity.class);
intent.putExtra(META_LIST_SELECTED, metaListId);
startActivity(intent);
....
EditListPropertiesActivity
public class EditListPropertiesActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_list_parameters);
getActionBar().setDisplayHomeAsUpEnabled(true); //this enables the '<' (back) button
intent = getIntent();
metaListId = intent.getLongExtra(DisplayMetaListActivity.META_LIST_SELECTED, 1);
...
list
<application>
<activity
android:name=".MainActivity">
</activity>
<activity
android:name="com.example.tutorial1.DisplayListActivity"
android:parentActivityName="com.example.tutorial1.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.tutorial1.MainActivity" />
</activity>
<activity
android:name="com.example.tutorial1.EditListPropertiesActivity"
android:parentActivityName="com.example.tutorial1.DisplayListActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.tutorial1.DisplayListActivity" />
</activity>
</application>
最佳答案
试试这个来完成一个 Activity
Intent intent = new Intent();
intent.putExtra(EXTRA, value);
setResult(RESULT_OK, output);
finish();
这是为了获得上一个 Activity 的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(data.getExtras().containsKey(EXTRA)){
// do stuff with data from finished activity
String bla = data.getStringExtra(EXTRA)
}
}
编辑:阅读评论!需要使用startActivityForResult
关于java - 使用 ActionBar 导航返回上一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962311/
我在我的应用程序中设置了一个操作栏。我通过调用 Activity.getActionBar() 取回 ActionBar .然后我设置了我需要的所有选项卡感谢 ActionBar.addTab()和
我正在为 Android 平板电脑 (XOOM) 开发应用程序,我想知道是否可以将操作栏放在屏幕底部,而不是顶部(这是默认选项) . 谢谢。 最佳答案 如果您在 Activity 中获取 Action
我很想为我用“ActionBar Sherlock”库导入的 ActionBar 设置一个背景图像。但是,我在 Internet 上找不到任何有关如何使用 XML 独特地设置 BackgroundIm
我需要在栏下方显示子菜单,而不是在栏本身的顶部。 复制下面我的 actionbar xml 在activity中(
我已经阅读了 AppCompat 库中的工具栏及其所有功能。我在 android 开发者博客 (here) 中注意到的一些事情是: Toolbar is fully supported in AppC
我试图做一个 Espresso 测试来检查 actionbar 是否隐藏/显示,但我似乎无法弄清楚如何将它与 Espresso.onView(...) 匹配。 Afaik它没有ID,对吧? 非常感谢
我们怎样才能让操作栏和操作栏选项卡变成纯白色。我正在使用 android-support-v7-appcompat 库来支持向后兼容性。 style/Theme.AppCompat.Light.Dar
在 Galaxy S3 上,我遇到一个问题,即 ActionBar 中的一个按钮被配置为 showAsAction="always"并且同时显示在硬件溢出菜单和操作按钮上。我希望它不显示在硬件溢出菜单
我正在学习教程 https://www.youtube.com/watch?v=VVahIc8yENk我得到了错误 java.lang.NullPointerException: Attempt to
背景 我希望在 PreferenceActivity 上显示一个 ActionBar,因为它不适用于 Honeycomb 之前的设备(即使在支持库中)。 因为这样的类在支持库中不可用,所以我不能只调用
我想实现将下载数据并将其设置到 ActionBar 选项卡中的应用程序。我已经实现了它,但我还有一件事要做。我试过添加操作栏列表,像这样 one , 但 android 不允许同时使用 Tabs 和
我希望我的 ActionBar 和 Tabs 看起来像这样。 请忽略颜色 目前看起来是这样 由于我的主题,我必须在 java 中设置自定义 ActionBar。 actionBar.setDispla
我目前正在某些页面上设置 ActionBar 副标题,但在某些页面上我不想有副标题。 我可以简单地将字幕文本设置为空,但这只会删除文本。它仍然占据字幕空间,从而将标题推高。可能很难解释,所以我用图片说
import android.app.ActionBar; import android.app.FragmentTransaction; import android.content.Intent;
我正在使用 ActionBarSherlock ,并尝试隐藏/显示全屏图像的 ActionBar,使用: getSupportActionBar.hide(); 和 getSupportActionB
我在我的简单应用程序上使用 ActionBarSherlock,如果用户在主页/主要 Activity 中,我想隐藏主页按钮。我了解如何使用 setHomeButtonEnabled(false) 执
我发现自己在 3 个单独的 Activity 中为我的 actionBar (actionBarSherlock) 列表重写了相同的代码。所有 3 个都使用相同的 actionBar,它有 3 个项目
我正在使用 ActionBarSherlock 在关于 ActionBar 标签高度的类似问题中,我使用了: @style/blah1 @style/blah2 80dp .
我一直在寻找是否有任何关于如何始终在 ActionBar 下方显示 ActionBar 选项卡的信息,即使当手机横向时也是如此。我知道它会根据屏幕上是否有足够的空间来自动将选项卡放置在 ActionB
我在 ActionBar 上方显示的 ActionBar Tabs 出现了这种奇怪的行为。当我为 ActionBar 设置自定义 View 时,这恰好发生了。我正在使用 Roman Nurik 的示例
我是一名优秀的程序员,十分优秀!