Advertisement
Guest User

jeancaffou

a guest
Nov 17th, 2011
1,796
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.06 KB | None | 0 0
  1. package net.kafol.vlaki;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import net.kafol.vlaki.Stations.Station;
  6. import android.app.Activity;
  7. import android.content.Context;
  8. import android.content.SharedPreferences;
  9. import android.os.Bundle;
  10. import android.preference.PreferenceManager;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.widget.ArrayAdapter;
  15. import android.widget.Button;
  16. import android.widget.CheckBox;
  17. import android.widget.CompoundButton;
  18. import android.widget.CompoundButton.OnCheckedChangeListener;
  19. import android.widget.LinearLayout;
  20. import android.widget.ListView;
  21. import android.widget.Toast;
  22.  
  23. public class PreferredStation extends Activity {
  24.     private SharedPreferences prefs;
  25.     private SharedPreferences.Editor editor;
  26.    
  27.     private ListView lv;
  28.     private StationListAdapter adapter;
  29.    
  30.     private Stations stations;
  31.    
  32.     /** Called when the activity is first created. */
  33.     @Override
  34.     public void onCreate(Bundle savedInstanceState) {
  35.         super.onCreate(savedInstanceState);
  36.         setContentView(R.layout.preferredstations);
  37.            
  38.         prefs = PreferenceManager.getDefaultSharedPreferences(this);
  39.         editor = prefs.edit();
  40.        
  41.         lv = (ListView) findViewById(R.id.stationlist);
  42.         adapter = new StationListAdapter(this, R.layout.stationcheckboxitem, new ArrayList<Station>());
  43.        
  44.         lv.setAdapter(adapter);
  45.        
  46.         stations = new Stations();
  47.         for(Station s:stations.list) adapter.add(s);
  48.        
  49.         Button checkall = (Button) findViewById(R.id.checkAll);
  50.         checkall.setOnClickListener(new View.OnClickListener() {
  51.             @Override
  52.             public void onClick(View v) {
  53.                 toggleCheck(true);
  54.             }
  55.         });
  56.         Button uncheckall = (Button) findViewById(R.id.uncheckAll);
  57.         uncheckall.setOnClickListener(new View.OnClickListener() {
  58.             @Override
  59.             public void onClick(View v) {
  60.                 toggleCheck(false);
  61.             }
  62.         });
  63.     }
  64.    
  65.     public void toggleCheck(Boolean val) {
  66.        
  67.         for(Station s : stations.list) {
  68.             s.checked = val;
  69.             editor.putBoolean("PF_"+s.getID(), val);
  70.         }
  71.        
  72.         for(int i=0 ; i < lv.getChildCount() ; i++) {
  73.             CheckBox cb = (CheckBox) lv.getChildAt(i).findViewById(R.id.cb);
  74.             cb.setChecked(val);
  75.         }
  76.  
  77.         editor.apply();
  78.     }
  79.    
  80.     private class StationCBViewHolder {
  81.         public CheckBox cb;
  82.         public Station s;
  83.     }
  84.    
  85.     private class StationListAdapter extends ArrayAdapter<Station> {
  86.         private ArrayList<Station> items;
  87.         private Context context;
  88.        
  89.         public StationListAdapter(Context context, int tvResId, ArrayList<Station> items) {
  90.             super(context, tvResId, items);
  91.             this.items = items;
  92.             this.context = context;
  93.         }
  94.  
  95.         @Override
  96.         public View getView(int pos, View v, ViewGroup parent) {
  97.             final StationCBViewHolder holder;
  98.             final Station item = items.get(pos);
  99.            
  100.             if (v == null) {
  101.                 LayoutInflater vi = ((Activity)context).getLayoutInflater();
  102.                 v = vi.inflate(R.layout.stationcheckboxitem, parent, false);
  103.                
  104.                 holder = new StationCBViewHolder();
  105.                 holder.cb = (CheckBox) v.findViewById(R.id.cb);
  106.                 holder.s = item;
  107.                
  108.                 item.checked = prefs.getBoolean("PF_"+item.getID(),true);
  109.                
  110.                 //holder.cb.setTag(holder);
  111.                 holder.cb.setTag(item);
  112.                 holder.cb.setChecked(item.checked);
  113.                 holder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
  114.                     @Override
  115.                     public void onCheckedChanged(CompoundButton v, boolean isChecked) {
  116.                         Station s = (Station) v.getTag();
  117.                         editor.putBoolean("PF_"+s.getID(), isChecked);
  118.                         editor.apply();
  119.                     }
  120.                 });
  121.                            
  122.                 v.setTag(holder);
  123.             } else {
  124.                 holder = (StationCBViewHolder) v.getTag();
  125.             }
  126.  
  127.             holder.cb.setText(item.toString());
  128.             holder.cb.setChecked(item.checked);
  129.  
  130.             return v;
  131.         }
  132.  
  133.     }
  134. }
  135.  
  136.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement