Android,我有一个activity中,主要就是有一个ListView布局,用来加载网络获取的数据,没有图片,都是文字。当listView加载完毕后,我按手机后退键,当前activity闪动一下回到了listView的顶部,也不是报错,后台log也不会报错。有时候会发生,又时候不会!哪位大神知道这个应该是哪一方面的问题!谢谢了。。。
可以把你的代码放出来让我们看下么?不然这样真的很束手
这需要看代码了,你是获取返回键做listview回到顶部处理了吗?
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();
}
};
}
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);
}
这样应该可以解决