从listadapter调用完成后活动未完成

时间:2014-01-25 07:53:05

标签: android android-layout android-listview android-fragments

从listview的listitems视图中调用finish()后,Activity仍会显示。 我使用viewpager指示器来托管片段列表。使用列表视图中的活动对象调用finish()方法。

 public View getView(int position , View changeview, ViewGroup container)
 {
    View row_view=changeview;

    if(row_view==null)
    {
     row_view=layoutInflater.inflate(R.layout.rate_cards_list_item,null);   
     viewHolder.rechargeIconListener=new RechargeIconListener()
     viewHolder.topup_recharge_icon.setOnClickListener(viewHolder.rechargeIconListener);
     row_view.setTag(viewHolder);
    }


}

列表适配器中的内部类

    class RechargeIconListener implements View.OnClickListener
    {
    @Override
    public void onClick(View view) {
            activity_object.setResult(Activity.RESULT_OK,intent);
            activity_object.finish();
            Log.w("activity_object","Activity not finished");
            return;
    }
   }

activity_object是与列表适配器的构造函数一起传递的活动的对象。 此外,活动有时结束,有时不结束。

2 个答案:

答案 0 :(得分:0)

使用如下所述的LocalBroadcastManager。

how to use LocalBroadcastManager?

您可以在活动中注册接收器,并从列表项单击中广播接收器的意图。 在onReceive方法中设置结果并完成您的活动。

答案 1 :(得分:-1)

获取您的活动的上下文并调用finish()

class RechargeIconListener implements View.OnClickListener
    {
    @Override
    public void onClick(View view) {
            context.finish();
    }
}