zoukankan      html  css  js  c++  java
  • 全选,反选,全不选以及计算价格,删除

    代码如下:实现购物车类似的功能,分为两个class,两个xml:

    activity_main.xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
      <LinearLayout 
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          >
        <Button 
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="全选"
            android:layout_weight="1"
            />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="反 选" />
    
        <Button 
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="全不选"
             android:layout_weight="1"
            />
    </LinearLayout>
    <TextView 
        android:id="@+id/price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <ListView 
        android:id="@+id/listveiw"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        
        ></ListView>
      
      
      
      
    </LinearLayout>

    MainActivity.class主页面,重要代码存在处:

    package com.example.day_all_button;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.example.day_all_button.Adper.ViewHolder;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
    
    public class MainActivity extends Activity implements OnClickListener{
    
         private Button button1;
            private Button button2;
            private Button button3;
            private ListView listView;
            private List<Good> list;
            private TextView price;
            private int num=0;
            private int pric=0;
            private BaseAdapter adapter;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
              button1 = (Button) findViewById(R.id.button1);//全选
                button2 = (Button) findViewById(R.id.button2);//反选
                button3 = (Button) findViewById(R.id.button3);//全不选
                listView = (ListView) findViewById(R.id.listveiw);//价格
                price = (TextView) findViewById(R.id.price);
                list = new ArrayList<Good>();
                //赋值
                for (int i = 0; i < 80; i++) {
                    list.add(new Good(i+"", false));
                }
                //适配
                adapter = new Adper(list,MainActivity.this);
                listView.setAdapter(adapter);
                button1.setOnClickListener(this);
                button2.setOnClickListener(this);
                button3.setOnClickListener(this);
                // 绑定listView的监听器 
                listView.setOnItemClickListener(new OnItemClickListener() {
    
                    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                            long arg3) {
                        // TODO Auto-generated method stub
                         // 取得ViewHolder对象
                        ViewHolder viewHolder = (ViewHolder) arg1.getTag();
                         // 改变CheckBox的状态  
                        viewHolder.checkBox.toggle();
                         // 将CheckBox的选中状况记录下来  
                        list.get(arg2).setBo(viewHolder.checkBox.isChecked());
                         // 调整选定条目  
                        if (viewHolder.checkBox.isChecked() == true) {  
                            num++;  
                            pric+=Integer.parseInt(list.get(arg2).getName());    
                        } else {  
                            num--;  
                            pric-=Integer.parseInt(list.get(arg2).getName());    
                        } 
                        // 用TextView显示  
                        price.setText("一共选了"+num+"件,"+"价格是"+pric+"");
                    }
                });
                
                
                
        }
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            switch (arg0.getId()) {
            case R.id.button1:
                  num = 0;
                  pric = 0;
    
                 for (int i = 0; i < list.size(); i++) {
                     //改变boolean
                     list.get(i).setBo(true);
                     //如果为选中
                          if(list.get(i).getBo()){
                       
                          num++;
                          pric+=Integer.parseInt(list.get(i).getName());
                     
                     } 
                 }
                 //刷新
                 adapter.notifyDataSetChanged();
                 //显示
                 price.setText("一共选了"+num+"件,"+"价格是"+pric+"");
                 break;
            case R.id.button2:
                   num = 0;
                   pric = 0;
                  for (int i = 0; i < list.size(); i++) {
                      //改值
                      if(list.get(i).getBo()){
                          list.get(i).setBo(false);
                      }else{
                          list.get(i).setBo(true);
                      }
                      //刷新
                      adapter.notifyDataSetChanged();
                      //如果为选中
                      if(list.get(i).getBo()){
                           
                           num++;
                           pric+=Integer.parseInt(list.get(i).getName());
                          
                      } 
                  }
                  // 用TextView显示  
                  price.setText("一共选了"+num+"件,"+"价格是"+pric+"");
                  break;
            case R.id.button3:
                  num = 0;
                  pric = 0;
                 for (int i = 0; i < list.size(); i++) {
                     //改值
                     list.get(i).setBo(false);
                     //刷新
                     adapter.notifyDataSetChanged();
                     //如果为选中
                     if(list.get(i).getBo()){ 
                          num++;
                          pric+=Integer.parseInt(list.get(i).getName());     
                     } 
                     
                 }
                 price.setText("一共选了"+num+"件,"+"价格是"+pric+"");
                break;
            }
              }
                
        
             
    
            
    
            
        
        
    
    }

    需要定义一个vo类,泳衣存放boolean类型的值,判断是否选中:

    package com.example.day_all_button;
    
    public class Good {
        private String name;
        private boolean bo;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public boolean getBo() {
            return bo;
        }
        public void setBo(boolean bo) {
            this.bo = bo;
        }
        public Good(String name, boolean bo) {
            super();
            this.name = name;
            this.bo = bo;
        }
        
        
                
        
            
        
                
    }

    加下来事适配器:

    package com.example.day_all_button;
    
    import java.util.List;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.CheckBox;
    import android.widget.TextView;
    
    public class Adper extends BaseAdapter {
        List<Good> list;
        Context context;
        
        public Adper(List<Good> list, Context context) {
            // TODO Auto-generated constructor stub
        this.list=list;
        this.context=context;
        
        
        }
    
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }
    
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return list.get(position);
        }
    
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            final ViewHolder viewHolder;
            if(convertView==null){
                convertView=View.inflate(context, R.layout.item, null);
             viewHolder=new ViewHolder();
             viewHolder.textView=(TextView) convertView.findViewById(R.id.text);
            viewHolder.checkBox=(CheckBox) convertView.findViewById(R.id.checkbox); 
            convertView.setTag(viewHolder);
            }else{
                viewHolder=(ViewHolder) convertView.getTag();
            }
            viewHolder.textView.setText("价格:"+list.get(position).getName());
            
            //显示checkBox
            viewHolder.checkBox.setChecked(list.get(position).getBo());
            
            return convertView;
            
        }
    class ViewHolder{
        TextView textView;
        CheckBox checkBox;
    }
    }

    适配器的xml:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
       <TextView 
           android:id="@+id/text"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="ddd"
           
           />
    
       <CheckBox
           android:id="@+id/checkbox"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
          
            android:focusable="false"  
            android:clickable="false"
    
    
           android:layout_alignParentRight="true"
           android:layout_alignParentTop="true" />
    
    </RelativeLayout>

     删除功能:

        case R.id.delete:
             
                
                //迭代集合对象
                Iterator<User> iterator = list_user.iterator();
                while(iterator.hasNext())
                {
                    
                    User next = iterator.next();
                    boolean ischeck = next.isIscheck();
                    
                    if(ischeck)
                    {
                        iterator.remove();
                        System.out.println(list_user.size());
                    }
                }
  • 相关阅读:
    名称空间与作用域
    3.19作业
    函数的参数
    文件的f.seek和文件修改方式以及函数的基本使用
    3.17作业
    文件处理
    3.16作业
    转 移动端-webkit-user-select:none导致input/textarea输入框无法输入
    移动端开发兼容性总结
    移动端input 无法获取焦点的问题
  • 原文地址:https://www.cnblogs.com/123p/p/5386652.html
Copyright © 2011-2022 走看看