您的位置:首页 > 其它

关于listview记录

2016-06-07 20:45 232 查看
<span style="font-size:24px;">隐藏listview的滚动条
android:scrollbars="none"
设置项目间的分割线
android:diviver=“@android:color/xxx”
android:dividerHeight="1dp"
取消listview的item点击效果
android:listSelector="#00000000"或android:listSelector="@android:color/transparent"
设置listview显示到第几个item
listView.setSelection(0);或者listView.smoothScrollBy(distance,duration);或listView.smoothScrollByOffset(offset);或listView.smoothScrollToPosition(index);
处理空的listView
<FrameLayout>
<ListView/>
<TextView
android:id=@+id/tv
/>
</FrameLayout>
listView.setEmptyView(tv);
listview中的item中的button点击事件失效
在listview的item跟布局中 添加
android:descendantFocusability="blocksDescendants"

listview中item包含checkbox,实现多选功能代码如下:
//listView item点击事件 接口回调 将多选的门店 返给MainActivity
@Override
public void getcheckedList(List<StoresalerBean.ItemsEntity> clickList) {
Intent intent=new Intent(mContext,FavorableUploadActivity.class);
intent.putExtra("clickList", (Serializable) clickList);
ChooseShopFavorableActivity.this.setResult(3, intent);
ChooseShopFavorableActivity.this.finish();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv_search_shop://确定
mAdapter.setGetCheckedListener(this);
break;
}
}

public class ChooseStoreSalerAdapter extends BaseAdapter {
private Context mContext;
private List<StoresalerBean.ItemsEntity> list;
// 用来控制CheckBox的选中状况
public static HashMap<Integer, Boolean> isSelected = new HashMap<Integer, Boolean>();
public List<StoresalerBean.ItemsEntity> clickList;
private ViewHolder viewHolder;
private GetCheckedListener mGetCheckedListener;

public ChooseStoreSalerAdapter(Context cxt, List<StoresalerBean.ItemsEntity> list) {
this.mContext = cxt;
this.list = list;
clickList= new ArrayList<StoresalerBean.ItemsEntity>();

}

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

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

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

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if (view == null) {
viewHolder = new ViewHolder();
view = LayoutInflater.from(mContext).inflate(R.layout.list_shop, null);
viewHolder.rl_main = (LinearLayout) view .findViewById(R.id.rl_main);
viewHolder.tvItem = (TextView) view.findViewById(R.id.tv_list_market_name);
viewHolder.tvSelect = (CheckBox) view.findViewById(R.id.rb_choose_brand);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
initData(i, viewHolder);
return view;
}

private void initData(final int i, final ViewHolder viewHolder) {
viewHolder.tvSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked) {
isSelected.put(i, isChecked);
if (!clickList.contains(list.get(i))) {
clickList.add(list.get(i));
}
viewHolder.tvSelect.setBackgroundResource(R.mipmap.ic_choose_ok);

}else{
isSelected.remove(i);
clickList.remove(list.get(i));
viewHolder.tvSelect.setBackgroundColor(Color.parseColor("#00000000"));
}
}
});
viewHolder.tvSelect.setChecked(isSelected.get(i)==null? false : true);
viewHolder.tvItem.setText(list.get(i).getName());

viewHolder.rl_main.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (viewHolder.tvSelect.isChecked()) {
isSelected.remove(i);
}else{
isSelected.put(i, true);
}
viewHolder.tvSelect.setChecked(isSelected.get(i)==null? false : true);
}
});
}

public void setGetCheckedListener(GetCheckedListener mGetCheckedListener) {
this.mGetCheckedListener = mGetCheckedListener;
if (mGetCheckedListener != null){
mGetCheckedListener.getcheckedList(clickList);
}
}

public interface GetCheckedListener{
public void getcheckedList(List<StoresalerBean.ItemsEntity> clickList);
}

public static class ViewHolder {
public TextView tvItem;
public CheckBox tvSelect;
public LinearLayout rl_main;
}

}
MainActivity中
case R.id.select_shop://选择门店
Intent intent=new Intent(mContext, ChooseShopFavorableActivity.class);
intent.putExtra("targetId",targetId);
startActivityForResult(intent, 3);

break;

/**
* 图片选择及拍照结果
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri uri = null;
switch (requestCode) {
case PHOTOZOOM:// 相册
if (data == null) {
return;
}
uri = data.getData();
path= getImageAbsolutePath(this,uri);
Intent intent3 = new Intent(mContext, UserRectClipHead.class);
intent3.putExtra("path", path);
Log.i("x选择图片", path + "");
startActivityForResult(intent3, IMAGE_COMPLETE);
break;
case PHOTOTAKE:// 拍照
path = photoSavePath + photoSaveName;
uri = Uri.fromFile(new File(path));
Intent intent2 = new Intent(mContext, UserRectClipHead.class);
intent2.putExtra("path", path);
startActivityForResult(intent2, IMAGE_COMPLETE);
break;
case IMAGE_COMPLETE:
final String temppath = data.getStringExtra("path");
Intent intent = new Intent();
intent.putExtra("path", temppath);
setResult(0, intent);
try {
mDialog.show();
postFile(temppath);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
add_img.setImageBitmap(BitmapUtils.UrlToBitmap(temppath));
break;
case 3://选择门店 返回结果
Log.i("storeList-----", "---选择门店 返回结果---");
if (data!=null){
storeList=(List<StoresalerBean.ItemsEntity>)data.getSerializableExtra("clickList");
MarketTextAdapter adapter=new MarketTextAdapter(mContext,storeList);
lv_shop.setAdapter(adapter);
adapter.notifyDataSetChanged();
storeIds=new ArrayList<Integer>();
if (storeList!=null){
for (int i=0;i<storeList.size();i++){
storeIds.add(storeList.get(i).getId());
}
}
}

break;
}
super.onActivityResult(requestCode, resultCode, data);
}

</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: