ListScreen.java (6988B)
1 package drsocto.shlist; 2 3 import android.content.Context; 4 import android.content.Intent; 5 import android.support.v7.app.ActionBarActivity; 6 import android.os.Bundle; 7 import android.util.Log; 8 import android.view.LayoutInflater; 9 import android.view.Menu; 10 import android.view.MenuItem; 11 import android.view.View; 12 import android.view.ViewGroup; 13 import android.widget.AdapterView; 14 import android.widget.ArrayAdapter; 15 import android.widget.CheckBox; 16 import android.widget.ListView; 17 import android.widget.Switch; 18 import android.widget.TextView; 19 20 import java.util.ArrayList; 21 22 23 public class ListScreen extends ActionBarActivity { 24 ArrayList<String> list1; 25 ArrayList<String> list1a; 26 ArrayList<String> list1b; 27 ArrayList<String> list2; 28 29 ArrayAdapter<String> adapter1; 30 ArrayAdapter<String> adapter2; 31 32 TextView cListsTV; 33 TextView oListsTV; 34 35 36 @Override 37 protected void onCreate(Bundle savedInstanceState) { 38 super.onCreate(savedInstanceState); 39 setContentView(R.layout.layout_list_screen); 40 41 Intent intent = getIntent(); 42 String listName = intent.getStringExtra(HomeScreen.SELECTED_LIST); 43 44 setTitle(listName); 45 46 // Shared items 47 list1 = new ArrayList<String>(); 48 list1a = new ArrayList<String>(); 49 list1b = new ArrayList<String>(); 50 list1.add("Axe"); 51 list1a.add("4"); 52 list1b.add("Jeb"); 53 54 adapter1 = new MyCustomAdapter(this, R.layout.item_row, list1, list1a, list1b); 55 56 ListView lv1 = (ListView) findViewById(R.id.sharedItems); 57 58 list2 = new ArrayList<String>(); 59 list2.add("Space Muffins"); 60 61 adapter2 = new ArrayAdapter<String>(this, R.layout.item_row, R.id.itemName, list2); 62 63 ListView lv2 = (ListView) findViewById(R.id.privateItems); 64 lv2.setOnItemClickListener(new AdapterView.OnItemClickListener() { 65 @Override 66 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 67 String name = adapter2.getItem(position); 68 list2.remove(position); 69 list1.add(name); 70 adapter1.notifyDataSetChanged(); 71 adapter2.notifyDataSetChanged(); 72 } 73 }); 74 75 cListsTV = (TextView) findViewById(R.id.sharedItemsTV); 76 oListsTV = (TextView) findViewById(R.id.privateItemsTV); 77 78 cListsTV.setText("Shared Items (" + list1.size() + ")"); 79 oListsTV.setText("Private Items (" + list2.size() + ")"); 80 81 lv1.setAdapter(adapter1); 82 lv2.setAdapter(adapter2); 83 } 84 85 public void addListItem() { 86 list2.add("Foobar"); 87 adapter2.notifyDataSetChanged(); 88 } 89 90 @Override 91 public boolean onCreateOptionsMenu(Menu menu) { 92 // Inflate the menu; this adds items to the action bar if it is present. 93 getMenuInflater().inflate(R.menu.menu_list_screen, menu); 94 return true; 95 } 96 97 @Override 98 public boolean onOptionsItemSelected(MenuItem item) { 99 // Handle action bar item clicks here. The action bar will 100 // automatically handle clicks on the Home/Up button, so long 101 // as you specify a parent activity in AndroidManifest.xml. 102 int id = item.getItemId(); 103 104 //noinspection SimplifiableIfStatement 105 if (id == R.id.action_settings) { 106 return true; 107 } if(id == R.id.action_add) { 108 addListItem(); 109 } 110 111 return super.onOptionsItemSelected(item); 112 } 113 114 115 116 117 private class MyCustomAdapter extends ArrayAdapter<String> { 118 119 private ArrayList<String> nlist; 120 private ArrayList<String> qlist; 121 private ArrayList<String> olist; 122 123 public MyCustomAdapter(Context context, int textViewResourceId, 124 ArrayList<String> nlist, ArrayList<String> qlist, ArrayList<String> olist) { 125 super(context, textViewResourceId, nlist); 126 this.nlist = new ArrayList<String>(); 127 this.nlist.addAll(nlist); 128 this.olist = new ArrayList<String>(); 129 this.olist.addAll(olist); 130 this.qlist = new ArrayList<String>(); 131 this.qlist.addAll(qlist); 132 } 133 134 private class ViewHolder { 135 TextView name; 136 TextView quantity; 137 TextView owner; 138 Switch complete; 139 } 140 141 @Override 142 public View getView(final int position, View convertView, ViewGroup parent) { 143 144 ViewHolder viewHolder = null; 145 Log.v("ConvertView", String.valueOf(position)); 146 147 if (convertView == null) { 148 LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 149 convertView = inflater.inflate(R.layout.item_row, null); 150 151 viewHolder = new ViewHolder(); 152 viewHolder.name = (TextView) convertView.findViewById(R.id.itemName); 153 viewHolder.quantity = (TextView) convertView.findViewById(R.id.itemQuantity); 154 viewHolder.owner = (TextView) convertView.findViewById(R.id.itemOwner); 155 viewHolder.complete = (Switch) convertView.findViewById(R.id.itemComplete); 156 convertView.setTag(viewHolder); 157 158 viewHolder.name.setOnClickListener(new View.OnClickListener() { 159 @Override 160 public void onClick(View v) { 161 TextView tv = (TextView) v; 162 Log.d("User Input", "Clicked: " + tv.getText()); 163 } 164 }); 165 166 viewHolder.quantity.setOnClickListener(new View.OnClickListener() { 167 @Override 168 public void onClick(View v) { 169 TextView tv = (TextView) v; 170 Log.d("User Input", "Clicked: " + tv.getText()); 171 } 172 }); 173 174 viewHolder.owner.setOnClickListener(new View.OnClickListener() { 175 @Override 176 public void onClick(View v) { 177 TextView tv = (TextView) v; 178 Log.d("User Input", "Clicked: " + tv.getText()); 179 } 180 }); 181 182 viewHolder.complete.setOnClickListener(new View.OnClickListener() { 183 @Override 184 public void onClick(View v) { 185 Log.d("User Input", "Clicked: " + nlist.get(position) + "'s Checkbox"); 186 } 187 }); 188 } 189 else { 190 viewHolder = (ViewHolder) convertView.getTag(); 191 } 192 193 String name = nlist.get(position); 194 String quantity = qlist.get(position); 195 String owner = olist.get(position); 196 viewHolder.name.setText(name); 197 viewHolder.quantity.setText("(x" + quantity +")"); 198 viewHolder.owner.setText(owner); 199 200 return convertView; 201 202 } 203 204 } 205 206 207 }