Advertisement
moonlightcheese

listview not refreshing

Jun 28th, 2011
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.30 KB | None | 0 0
  1. package com.conceptualsystems.kitmobile;
  2.  
  3. import java.util.*;
  4.  
  5. import android.app.*;
  6. import android.os.*;
  7. import android.content.*;
  8. import android.widget.*;
  9. import android.view.*;
  10. import android.util.Log;
  11.  
  12. public class ShipActivity extends Activity
  13. {
  14.     //UI elements
  15.     private ListView mShipKitListView;
  16.     private LayoutInflater mInflater;
  17.     private SharedPreferences mPrefs;
  18.     private List<Map<String, String>> mShipKitList;
  19.     private SimpleAdapter mShipKitAdapter;
  20.    
  21.     //constants
  22.     private String LOG_TAG = "KitMobile - ShipActivity.java";
  23.    
  24.     /** inner classes **/
  25.     public class ShipKitAdapter extends BaseAdapter {
  26.         private LayoutInflater mInflater;
  27.         private List<Map<String, String>> mData;
  28.        
  29.         public ShipKitAdapter(Context context, List<Map<String, String>> data) {
  30.             mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  31.             mData = data;
  32.         }
  33.        
  34.         public long getItemId(int position) {
  35.             return position;
  36.         }
  37.        
  38.         public Object getItem(int position) {
  39.             return mData.get(position);
  40.         }
  41.        
  42.         public int getCount() {
  43.             return mData.size();
  44.         }
  45.        
  46.         @Override
  47.         public View getView(int position, View convertView, ViewGroup parent) {
  48.             if(convertView==null) {
  49.                 convertView = mInflater.inflate(R.layout.ship_list_item, null);
  50.             }
  51.             ((TextView)convertView.findViewById(R.id.kit_id)).setText(mData.get(position).get("kit_id"));
  52.             ((TextView)convertView.findViewById(R.id.net_units)).setText(mData.get(position).get("net_units"));
  53.             ((TextView)convertView.findViewById(R.id.net_uom)).setText(mData.get(position).get("net_uom"));
  54.             ((TextView)convertView.findViewById(R.id.product_name)).setText(mData.get(position).get("product_name"));
  55.             ((TextView)convertView.findViewById(R.id.gross_units)).setText(mData.get(position).get("gross_units"));
  56.             ((TextView)convertView.findViewById(R.id.gross_uom)).setText(mData.get(position).get("gross_uom"));
  57.             return convertView;
  58.         }
  59.     };
  60.    
  61.     /** Called when the activity is first created. */
  62.     @Override
  63.     public void onCreate(Bundle savedInstanceState)
  64.     {
  65.         super.onCreate(savedInstanceState);
  66.        
  67.         mPrefs = getSharedPreferences("kitmobileprefs", Context.MODE_PRIVATE);
  68.         mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  69.        
  70.         //data init
  71.         mShipKitList = new ArrayList<Map<String, String>>();
  72.        
  73.         initScreen();
  74.     }
  75.    
  76.     private void initScreen() {
  77.         setContentView(R.layout.ship);
  78.         mShipKitListView = (ListView)findViewById(R.id.kit_list);
  79.         mShipKitAdapter = new SimpleAdapter(
  80.                 this,
  81.                 mShipKitList,
  82.                 R.layout.ship_list_item,
  83.                 new String[] { "kit_id","net_units","net_uom","gross_units","gross_uom","product_name" },
  84.                 new int[] { R.id.kit_id, R.id.net_units, R.id.net_uom, R.id.gross_units, R.id.gross_uom, R.id.product_name }
  85.             );
  86.         mShipKitListView.setAdapter(mShipKitAdapter);
  87.     }
  88.    
  89.     private void addFakeListItem(String id) {
  90.         int position = mShipKitList.size();
  91.         mShipKitList.add(new HashMap<String, String>());
  92.         mShipKitList.get(position).put("kit_id", id);
  93.         mShipKitList.get(position).put("net_units", "5027");
  94.         mShipKitList.get(position).put("net_uom", "lbs");
  95.         mShipKitList.get(position).put("gross_units", "5155");
  96.         mShipKitList.get(position).put("gross_uom", "lbs");
  97.         mShipKitList.get(position).put("product_name", "COPPER #1");
  98.        
  99.         //mShipKitAdapter.notifyDataSetInvalidated();
  100.         mShipKitAdapter.notifyDataSetChanged();
  101.         //mShipKitListView.invalidate();
  102.     }
  103.    
  104.     // OPTIONS MENU
  105.     ///////////////
  106.     public boolean onCreateOptionsMenu(Menu menu) {
  107.         MenuInflater inflater = getMenuInflater();
  108.         inflater.inflate(R.menu.ship_options, menu);
  109.         return true;
  110.     }
  111.    
  112.     public boolean onOptionsItemSelected(MenuItem item) {
  113.         switch(item.getItemId()) {
  114.             case R.id.opt_add_item:
  115.                 //add a fake item to the list
  116.                 Random gen = new Random();
  117.                 addFakeListItem(new Integer(gen.nextInt(5000)).toString());
  118.                 Log.i(LOG_TAG, mShipKitList.toString());
  119.                 return true;
  120.             case R.id.opt_transmit:
  121.                 mShipKitAdapter.notifyDataSetChanged();
  122.                 //mShipKitAdapter.notifyDataSetInvalidated();
  123.                 //Log.i(LOG_TAG, mShipKitList.toString());
  124.                 //((ArrayAdapter)mShipKitListView.getAdapter()).notifyDataSetChanged();
  125.                 //mShipKitListView.invalidate();
  126.                 return true;
  127.             default:
  128.                 super.onOptionsItemSelected(item);
  129.                 return true;
  130.         }
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement