点击ListView按钮后启动另一个活动,完成或销毁活动。

3

我有一个Activity名为ListActivity,其中包含一个ListView和另一个类CustomListAdapter继承自BaseAdapter。

ListActivity中的代码:

customAdapter = new CustomListAdapter(list);
TripList.setAdapter(customAdapter);

在CustomListAdapter的getView()中,我会填充一个布局。有一个按钮,点击该按钮后我会启动另一个活动。 我想在启动另一个活动后结束ListActivity。 使用下面的代码,我的应用程序崩溃了。
((Activity) ctx).finish();

日志是

01-05 11:06:04.319: E/AndroidRuntime(4319): FATAL EXCEPTION: main
01-05 11:06:04.319: E/AndroidRuntime(4319): Process: com.example.myapp, PID: 4319
01-05 11:06:04.319: E/AndroidRuntime(4319): java.lang.NullPointerException
01-05 11:06:04.319: E/AndroidRuntime(4319):     at com.example.myapp.CustomListAdapter$1.onClick(CustomListAdapter.java:71)

请帮忙。


1
好的,那请发布您的日志记录(logcat)。 - IntelliJ Amiya
1
你尝试过使用 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_NEW_TASK); 吗?在这种情况下不要使用 **finish()**。 - Danh DC
#manjari:请检查我的答案。请给我反馈。 - IntelliJ Amiya
3个回答

4

首先,您可以发布您的 Logcat

FLAG_ACTIVITY_CLEAR_TOP

如果设置了此标志,并且要启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将其上面的所有其他活动关闭,并将此 Intent 作为新 Intent 传递给(现在位于顶部的)旧活动。

FLAG_ACTIVITY_NEW_TASK

如果用于启动任务的根活动,则会将该任务的任何当前正在运行的实例带到前台,然后将其清除到其根状态。

您可以使用 Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK

最后,应该是:

   Intent intent = new Intent(ctx, NewActivityName.Class);
   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK);
   intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
   startActivity(intent);

1
抱歉,它没有起作用。在按下设备的返回按钮之后,该活动会再次显示。 - manjari
它报错了,错误信息是:“方法finish()在类型new View.OnClickListener(){}中未定义”。 - manjari
@manjari 姐。没关系。你能发一下你的全部代码吗?你现在遇到了“NullPointerException”的问题。 - IntelliJ Amiya
1
谢谢。问题已解决。因为我在getView()方法中启动了一个Activity,所以仅使用finish()无法解决问题。我只是将其更改为((Activity)parent.getContext()).finish(); - manjari

3

您的活动名称替换为新的活动。

startActivity(new Intent(ctx,NewActivity.class));
((Activity) ctx).finish();

1

由于我在getView()函数中启动了一个活动,所以((Activity) ctx).finish();无法正常工作。我只需将其更改为((Activity)parent.getContext()).finish();即可正常工作。


愉快的编码。继续前进。 - IntelliJ Amiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接