private ListView machine_listview; ArrayAdapter<String> adapter; ArrayList<String> arrayListofMachines; ArrayList<String> arrayListofMachineNumbers; Vector<MDCMachineStatus> machineStatus_vector; Handler handler; private static int oldPosition = 0; private Boolean firstClick = true; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.machinelistview); machine_listview = (ListView) findViewById(R.id.machine_listview); machine_listview.setFastScrollEnabled(true); MachineStatusSingleton.Register(this); getData(); adapter = new ArrayAdapter<String>(MachineListView.this, R.layout.listviewrow, arrayListofMachines); // adapter = new ArrayAdapter<String>(this, R.layout.listviewrow, arrayListofMachines); machine_listview.setAdapter(adapter); machine_listview.setSelection(oldPosition); // adapter = new Arr machine_listview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { // TODO Auto-generated method stub oldPosition = position; MachineStatusSingleton.setMachineNumber(arrayListofMachineNumbers.get(position)); MachineListView.this.finish(); } }); handler = new Handler(){ public void handleMessage(android.os.Message msg) { machine_listview.setAdapter(adapter); adapter.notifyDataSetChanged(); }; }; } public void Update(ISubject arg0) { // TODO Auto-generated method stub // updateData(); } @Override public void onDestroy() { super.onDestroy(); MachineStatusSingleton.Unregister(this); } private void getData(){ machineStatus_vector = MachineStatusSingleton.GetData(); arrayListofMachines = new ArrayList<String>(); arrayListofMachineNumbers = new ArrayList<String>(); for(MDCMachineStatus temp: machineStatus_vector){ arrayListofMachines.add(temp.toString()); arrayListofMachineNumbers.add(temp.getNumber()); } Collections.sort(arrayListofMachines); Collections.sort(arrayListofMachineNumbers); } private void updateData(){ getData(); handler.sendEmptyMessage(0); // machine_listview.postInvalidate(); adapter.notifyDataSetChanged(); int index = machine_listview.getFirstVisiblePosition(); View v = machine_listview.getChildAt(0); int top = (v == null) ? 0 : v.getTop(); // ... // restore machine_listview.setSelectionFromTop(index, top); // adapter.notifyDataSetChanged(); } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)