android 显示listVIew按后退键闪动不退出当前activity问题

Android,我有一个activity中,主要就是有一个ListView布局,用来加载网络获取的数据,没有图片,都是文字。当listView加载完毕后,我按手机后退键,当前activity闪动一下回到了listView的顶部,也不是报错,后台log也不会报错。有时候会发生,又时候不会!哪位大神知道这个应该是哪一方面的问题!谢谢了。。。

可以把你的代码放出来让我们看下么?不然这样真的很束手

这需要看代码了,你是获取返回键做listview回到顶部处理了吗?

activity代码

public class OrganizationSelectActivity extends Activity {
private OrganizationAdapter adapter;
private List organizationList = new ArrayList<>();
private ListView listView;
private ImageView back;
private Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_organization_select);
    initView();
    adapter = new OrganizationAdapter(OrganizationSelectActivity.this, organizationList, listView);
    listView.setAdapter(adapter);
}

private void initView() {
    intent = getIntent();
    // 接受传递过来的list
    Bundle bundle = new Bundle();
    bundle = intent.getExtras();
    organizationList = bundle.getParcelableArrayList("list");//这个是上层页面通过Intent传递过来的数据。获取数据没有问题
    listView = (ListView) findViewById(R.id.listView);
    listView.setOnItemClickListener(itemClickListener);
    back = (ImageView) findViewById(R.id.back);
    back.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // 回退图标
            finish();
        }
    });
}

// item点击事件
OnItemClickListener itemClickListener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Bundle bundle = new Bundle();
        bundle.putParcelable("bean", organizationList.get(position));
        intent.putExtras(bundle);
        setResult(RESULT_OK, intent);
        OrganizationSelectActivity.this.finish();
    }
};

}

adapter代码

package com.xzsj.measure.adapter;

import java.util.List;

import com.xzsj.measure.R;
import com.xzsj.measure.bean.OrganizationBean;
import com.xzsj.measure.bean.OrganizationBean.ListEntity;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

/*

  • 自定义listView的适配器
    */
    public class OrganizationAdapter extends BaseAdapter {
    private Context context;
    private List list;
    private ViewHolder holder;
    private ListView listView;
    private LayoutInflater inflater;

    public OrganizationAdapter(Context context, List list, ListView listView) {
    super();
    this.context = context;
    this.list = list;
    this.listView = listView;
    this.inflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
    if (list != null) {
    return list.size();
    }
    return 0;
    }

    @Override
    public Object getItem(int position) {
    return list.get(position);
    }

    @Override
    public long getItemId(int position) {
    return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
    holder = new ViewHolder();
    convertView = inflater.inflate(R.layout.item_organization, null);
    holder.number = (TextView) convertView.findViewById(R.id.number);
    holder.corp_name = (TextView) convertView.findViewById(R.id.corp_name);
    holder.code = (TextView) convertView.findViewById(R.id.code);
    convertView.setTag(holder);
    } else {
    holder = (ViewHolder) convertView.getTag();
    }
    holder.number.setText(String.valueOf(position + 1));
    holder.corp_name.setText(list.get(position).getDwmc1());
    holder.code.setText(list.get(position).getDwdm());
    return convertView;
    }

    class ViewHolder {
    TextView number, corp_name, code;
    }
    }

    实体类代码

    package com.xzsj.measure.bean;

import java.util.List;

import android.os.Parcel;
import android.os.Parcelable;

/*

  • 组织机构查询的实体类
    */
    public class OrganizationBean extends BaseJsonObject {
    private ResultEntity result;

    private List list;

    public void setResult(ResultEntity result) {
    this.result = result;
    }

    public void setList(List list) {
    this.list = list;
    }

    public ResultEntity getResult() {
    return result;
    }

    public List getList() {
    return list;
    }

    public static class ResultEntity {
    private String state;

    public void setState(String state) {
        this.state = state;
    }
    
    public String getState() {
        return state;
    }
    

    }

    public static class ListEntity implements Parcelable {
    private String org_info_id;
    private String dwdm;
    private String dwmc1;
    private String dwdz1;
    private String xzqh1;
    private String yb;
    private String fddbr;
    private String tel1;
    private String xydm;

    public ListEntity() {
        super();
    }
    
    public void setOrg_info_id(String org_info_id) {
        this.org_info_id = org_info_id;
    }
    
    public void setDwdm(String dwdm) {
        this.dwdm = dwdm;
    }
    
    public void setDwmc1(String dwmc1) {
        this.dwmc1 = dwmc1;
    }
    
    public void setDwdz1(String dwdz1) {
        this.dwdz1 = dwdz1;
    }
    
    public void setXzqh1(String xzqh1) {
        this.xzqh1 = xzqh1;
    }
    
    public void setYb(String yb) {
        this.yb = yb;
    }
    
    public void setFddbr(String fddbr) {
        this.fddbr = fddbr;
    }
    
    public void setTel1(String tel1) {
        this.tel1 = tel1;
    }
    
    public void setXydm(String xydm) {
        this.xydm = xydm;
    }
    
    public String getOrg_info_id() {
        return org_info_id;
    }
    
    public String getDwdm() {
        return dwdm;
    }
    
    public String getDwmc1() {
        return dwmc1;
    }
    
    public String getDwdz1() {
        return dwdz1;
    }
    
    public String getXzqh1() {
        return xzqh1;
    }
    
    public String getYb() {
        return yb;
    }
    
    public String getFddbr() {
        return fddbr;
    }
    
    public String getTel1() {
        return tel1;
    }
    
    public String getXydm() {
        return xydm;
    }
    
    @Override
    public int describeContents() {
        return 0;
    }
    
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(org_info_id);
        dest.writeString(dwdm);
        dest.writeString(dwmc1);
        dest.writeString(dwdz1);
        dest.writeString(xzqh1);
        dest.writeString(yb);
        dest.writeString(fddbr);
        dest.writeString(tel1);
        dest.writeString(xydm);
    }
    
    public static final Parcelable.Creator<ListEntity> CREATOR = new Creator<ListEntity>() {
        @Override
        public ListEntity[] newArray(int size) {
            return new ListEntity[size];
        }
    
        @Override
        public ListEntity createFromParcel(Parcel in) {
            return new ListEntity(in);
        }
    };
    
    public ListEntity(Parcel in) {
        org_info_id = in.readString();
        dwdm = in.readString();
        dwmc1 = in.readString();
        dwdz1 = in.readString();
        xzqh1 = in.readString();
        yb = in.readString();
        fddbr = in.readString();
        tel1 = in.readString();
        xydm = in.readString();
    }
    

    }
    }

注意规范,acitivty名.this.finish

重写OnKeyDown:

  @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
            && event.getAction() == KeyEvent.ACTION_DOWN) {
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

    这样应该可以解决