本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
MainActivity的布局文件
条目的布局文件
CartAdapter适配器
public class CaetAdapter extends baseAdapter {
private Context context;
private List> list;
private HashMap pitchOnMap;
public HashMap getPitchonMap() {
return pitchOnMap;
}
public void setPitchonMap(HashMap pitchOnMap) {
this.pitchonMap = pitchOnMap;
}
public CaetAdapter(Context context, List> list) {
this.context = context;
this.list = list;
pitchonMap = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
pitchOnMap.put(list.get(i).get("id"), 0);
}
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
convertView = View.inflate(context, R.layout.item_layout, null);
final CheckBox checkBox;
ImageView icon;
final TextView name, price, num, type, reduce, add;
checkBox = convertView.findViewById(R.id.check_box);
icon = convertView.findViewById(R.id.iv_adapter_list_pic);
name = convertView.findViewById(R.id.tv_goods_name);
price = convertView.findViewById(R.id.tv_goods_price);
type = convertView.findViewById(R.id.tv_type_size);
num = convertView.findViewById(R.id.tv_num);
reduce = convertView.findViewById(R.id.tv_reduce);
add = convertView.findViewById(R.id.tv_add);
name.setText(list.get(position).get("name"));
price.setText("¥ " + (Integer.valueOf(list.get(position).get("price"))) * (Integer.valueOf(list.get(position).get("count"))));
type.setText(list.get(position).get("type"));
num.setText(list.get(position).get("count"));
if(pitchOnMap.get(list.get(position).get("id"))== 0){
checkBox.setChecked(false);
}else{
checkBox.setChecked(true);
}
checkBox.setonCheckedChangeListener(new CompoundButton.onCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(checkBox.isChecked()){
pitchOnMap.put(list.get(position).get("id"),1);
}else{
pitchOnMap.put(list.get(position).get("id"), 0);
}
mrefreshPriceInterface.refreshPrice(pitchOnMap);
}
});
//商品数量减
reduce.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
if (Integer.valueOf(list.get(position).get("count")) <= 1) {
Toast.makeText(context, "数量不能再减啦,只能删除!", Toast.LENGTH_SHORT).show();
} else {
list.get(position).put("count", (Integer.valueOf(list.get(position).get("count")) - 1) + "");
notifyDataSetChanged();
}
mrefreshPriceInterface.refreshPrice(pitchOnMap);
}
});
//商品数量加
add.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
list.get(position).put("count", (Integer.valueOf(list.get(position).get("count")) + 1) + "");
notifyDataSetChanged();
mrefreshPriceInterface.refreshPrice(pitchOnMap);
}
});
return convertView;
}
public interface RefreshPriceInterface {
void refreshPrice(HashMap pitchOnMap);
}
private RefreshPriceInterface mrefreshPriceInterface;
public void setRefreshPriceInterface(RefreshPriceInterface refreshPriceInterface) {
mrefreshPriceInterface = refreshPriceInterface;
}
}
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener,CaetAdapter.RefreshPriceInterface{
private LinearLayout top_bar;
private ListView listview;
private CheckBox all_chekbox;
private TextView price;
private TextView delete;
private TextView tv_go_to_pay;
private List goodsList;
private UserDao userDao;
private List> listmap=new ArrayList<>();
private CaetAdapter adapter;
private double totalPrice = 0.00;
private int totalCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
top_bar = (LinearLayout) findViewById(R.id.top_bar);
listview = (ListView) findViewById(R.id.listview);
all_chekbox = (CheckBox) findViewById(R.id.all_chekbox);
price = (TextView) findViewById(R.id.tv_total_price);
delete = (TextView) findViewById(R.id.tv_delete);
tv_go_to_pay = (TextView) findViewById(R.id.tv_go_to_pay);
all_chekbox.setonClickListener(this);
delete.setonClickListener(this);
tv_go_to_pay.setonClickListener(this);
initDate();
adapter = new CaetAdapter(MainActivity.this, listmap);
listview.setAdapter(adapter);
adapter.setRefreshPriceInterface(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.all_chekbox:
AllTheSelected();
break;
case R.id.tv_delete:
checkDelete(adapter.getPitchonMap());
break;
case R.id.tv_go_to_pay:
if(totalCount<=0){
Toast.makeText(this,"请选择要付款的商品~",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this,"付款成功",Toast.LENGTH_SHORT).show();
}
break;
}
}
private void initDate() {
//创建集合
goodsList = new ArrayList<>();
//数据库
userDao = Myapplication.getInstances().getDaoSession().getUserDao();
userDao.deleteAll();
//数据源
for (int i = 0; i < 10; i++) {
//向数据库存放数据
User user = new User((long) i,
"购物车里的第" + (i + 1) + "件商品",
(i + 20) + "码",
"10",
"10");
userDao.insert(user);
}
//从数据库中把数据放到集合中
goodsList=userDao.loadAll();
//把结合中的数据放到HashMap集合中
for(int i=0;i map=new HashMap<>();
map.put("id",goodsList.get(i).getId()+"");
map.put("name",goodsList.get(i).getName());
map.put("type",(goodsList.get(i).getType()));
map.put("price",goodsList.get(i).getPrice()+"");
map.put("count",goodsList.get(i).getCount()+"");
listmap.add(map);
}
}
@Override
public void refreshPrice(HashMap pitchOnMap) {
priceControl(pitchOnMap);
}
private void priceControl(Map pitchOnMap){
totalCount = 0;
totalPrice = 0.00;
for(int i=0;i map){
List> waitDeleteList=new ArrayList<>();
Map waitDeleteMap =new HashMap<>();
for(int i=0;i map=adapter.getPitchonMap();
boolean isCheck=false;
boolean isUnCheck=false;
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
if(Integer.valueOf(entry.getValue().toString())==1){
isCheck=true;
}else{
isUnCheck=true;
}
}
if(isCheck==true&&isUnCheck==false){//已经全选,做反选
for(int i=0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



