从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是与列表适配器的构造函数一起传递的活动的对象。 此外,活动有时结束,有时不结束。
答案 0 :(得分:0)
使用如下所述的LocalBroadcastManager。
how to use LocalBroadcastManager?
您可以在活动中注册接收器,并从列表项单击中广播接收器的意图。 在onReceive方法中设置结果并完成您的活动。
答案 1 :(得分:-1)
获取您的活动的上下文并调用finish()
class RechargeIconListener implements View.OnClickListener
{
@Override
public void onClick(View view) {
context.finish();
}
}