Dynamic List Activity

From John Freier
Revision as of 09:03, 2 February 2011 by Jfreier (Talk | contribs) (Created page with 'package com.johnfreier.dailyfactorcrap; import java.util.ArrayList; import com.johnfreier.utilities.URLUtils; import android.app.ListActivity; import android.app.ProgressDialo…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

package com.johnfreier.dailyfactorcrap;

import java.util.ArrayList;

import com.johnfreier.utilities.URLUtils;

import android.app.ListActivity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message;

import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.ListView;


public class TopActivity extends ListActivity { private final static String BUNDLE_USER_STRING = "USERS_TOP_STRING";

private ArrayAdapter<String> adapter; private ProgressDialog dialog; private ArrayList<String> list;

   public void onCreate(Bundle savedInstanceState) 
   {
       super.onCreate(savedInstanceState);
       this.list = new ArrayList<String>();
       adapter = new ArrayAdapter<String>(this, R.layout.top, this.list);
       setListAdapter(adapter);
       
       ListView lv = getListView();
       lv.setTextFilterEnabled(true);
       
       this.refresh();
   }
   
   public void refresh()
   {
   	dialog = ProgressDialog.show(TopActivity.this, "","Refreshing...", true);
   	new Thread(new Runnable()
   	{

public void run() { String query = URLUtils.getSource(getString(R.string.apiTopURL)); Message myMessage=new Message(); Bundle resBundle = new Bundle(); resBundle.putString(BUNDLE_USER_STRING, query); myMessage.obj=resBundle; handlerRefresh.sendMessage(myMessage); dialog.dismiss(); }

   	}).start();
   }
   
   private Handler handlerRefresh = new Handler() 
   {
   	@Override
   	public void handleMessage(Message msg)
   	{
   		try
   		{
       		Bundle resBundle = (Bundle) msg.obj;
       		String query = resBundle.getString(BUNDLE_USER_STRING);
       		String[] tops = query.split("[|][|]");
   			list.clear();
   			for(int x = 0; x<tops.length;x++)
   			{
   				list.add(tops[x]);
   			}
   			adapter.notifyDataSetChanged();
   		}
   		catch(Exception e)
   		{
   			Log.d("refresher", e.toString());
   		}
   	}
   };
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu)
   {
       MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.top_menu, menu);
       return true;
   }
   
   @Override
   public boolean onOptionsItemSelected(MenuItem item)
   {
       // Handle item selection
       switch (item.getItemId())
       {
       	case R.id.refresh:
       		this.refresh();
       		return true;
       	default:
       		return super.onOptionsItemSelected(item);
       }
   }
   

}