繁体   English   中英

在启动另一个活动后单击Listview按钮完成或销毁活动

[英]Finish or destroy of activity on clicking of Listview button after starting of Another activity

我有一个具有Listview的Activity ListActivity,另一个类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)

请帮帮我。

首先,您可以发布您的Logcat

FLAG_ACTIVITY_CLEAR_TOP

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为新的意图。

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);

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

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

当我在getView()中启动一个活动时((Activity) ctx).finish(); 没有用。 我刚把它改成了((Activity)parent.getContext()).finish(); 它正在发挥作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM