【问题标题】:Finish or destroy of activity on clicking of Listview button after starting of Another activity在另一个活动开始后单击 Listview 按钮完成或销毁活动
【发布时间】:2016-01-05 08:18:44
【问题描述】:

我有一个具有 Listview 的活动 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
  • 您是否尝试使用 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_NEW_TASK); ,在这种情况下不要使用 finish()
  • #manjari :检查我的答案。请让我反馈一下。

标签: android baseadapter activity-finish getview


【解决方案1】:

首先,您可以发布您的 Logcat

FLAG_ACTIVITY_CLEAR_TOP

如果设置,并且正在启动的活动已经在 当前任务,而不是启动该任务的新实例 活动,除此之外的所有其他活动都将关闭,并且 此 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);

【讨论】:

  • 对不起,它不工作。按下设备的返回按钮后,该活动再次显示。
  • 它给出的错误是“方法finish() 未定义新View.OnClickListener(){} 类型”
  • @manjari 吉。没关系。你能发布你的总代码吗?你现在得到NullPointerException
  • 谢谢。解决了。因为我在 getView() 中开始了一项活动,所以只有 finish() 不起作用。我只是将其更改为 ((Activity)parent.getContext()).finish();
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    当我在 getView() 中开始一个活动时,所以 ((Activity) ctx).finish(); 不工作。我刚刚将其更改为((Activity)parent.getContext()).finish();,它正在工作

    【讨论】:

    • 快乐编码。继续前进。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多