Add GSON jar file to lib folder
// list activity
public class FriendsList extends Activity{
String mUrl;
TextView mCategory, mEmptyTextView;
ProgressBar mProgressBar;
ArrayList<NamesPojo> arraylist;
NamesJsonParsing parser = new NamesJsonParsing();
ListView list;
public void onBackPressed() {
finish();
};
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar
setContentView(R.layout.activity_friends_list);
list = (ListView) findViewById(android.R.id.list);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mEmptyTextView = (TextView) findViewById(R.id.empty);
mEmptyTextView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.GONE);
mUrl = "url here";
new getList().execute();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "selected "+arraylist.get(arg2).getName(), 3000).show();
}
});
list.setVerticalScrollBarEnabled(false);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setCacheColorHint(getResources().getColor(
R.color.listCacheColorHint));
list.setVerticalScrollBarEnabled(false);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setCacheColorHint(getResources().getColor(
R.color.listCacheColorHint));
}
class getList extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
protected Void doInBackground(Void... unused) {
mUrl.trim();
try{
arraylist = parser.getList(mUrl);
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
protected void onPostExecute(Void unused) {
if (arraylist != null && arraylist.size()-1 != 0) {
list.setAdapter(new MyAdapter());
} else {
mEmptyTextView.setVisibility(View.VISIBLE);
mEmptyTextView.setText("No users found..!!");
}
mProgressBar.setVisibility(View.GONE);
}
}
public class MyAdapter extends BaseAdapter {
public int getCount() {
// TODO Auto-generated method stub
return arraylist.size()-1;
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
public View getView(final int position, View v1, ViewGroup arg2) {
// TODO Auto-generated method stub
View v = null;
LayoutInflater l = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = l.inflate(R.layout.adapter_content, null);
// list-optimisation
View rowview = v;
if (rowview == null) {
LayoutInflater linf = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowview = linf.inflate(R.layout.adapter_content, null);
}
mCategory = (TextView) v.findViewById(R.id.category);
mCategory.setText(arraylist.get(position).getName());
return v;
}
}
}
// list activity
public class FriendsList extends Activity{
String mUrl;
TextView mCategory, mEmptyTextView;
ProgressBar mProgressBar;
ArrayList<NamesPojo> arraylist;
NamesJsonParsing parser = new NamesJsonParsing();
ListView list;
public void onBackPressed() {
finish();
};
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar
setContentView(R.layout.activity_friends_list);
list = (ListView) findViewById(android.R.id.list);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mEmptyTextView = (TextView) findViewById(R.id.empty);
mEmptyTextView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.GONE);
mUrl = "url here";
new getList().execute();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "selected "+arraylist.get(arg2).getName(), 3000).show();
}
});
list.setVerticalScrollBarEnabled(false);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setCacheColorHint(getResources().getColor(
R.color.listCacheColorHint));
list.setVerticalScrollBarEnabled(false);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setCacheColorHint(getResources().getColor(
R.color.listCacheColorHint));
}
class getList extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
protected Void doInBackground(Void... unused) {
mUrl.trim();
try{
arraylist = parser.getList(mUrl);
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
protected void onPostExecute(Void unused) {
if (arraylist != null && arraylist.size()-1 != 0) {
list.setAdapter(new MyAdapter());
} else {
mEmptyTextView.setVisibility(View.VISIBLE);
mEmptyTextView.setText("No users found..!!");
}
mProgressBar.setVisibility(View.GONE);
}
}
public class MyAdapter extends BaseAdapter {
public int getCount() {
// TODO Auto-generated method stub
return arraylist.size()-1;
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
public View getView(final int position, View v1, ViewGroup arg2) {
// TODO Auto-generated method stub
View v = null;
LayoutInflater l = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = l.inflate(R.layout.adapter_content, null);
// list-optimisation
View rowview = v;
if (rowview == null) {
LayoutInflater linf = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowview = linf.inflate(R.layout.adapter_content, null);
}
mCategory = (TextView) v.findViewById(R.id.category);
mCategory.setText(arraylist.get(position).getName());
return v;
}
}
}
// parsing & pojo classes
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.util.Log;
import com.google.myjson.Gson;
public class NamesJsonParsing {
private static final String TAG = "NamesJsonParsing";
// ListPojo listPojoObject;
ArrayList<NamesPojo> list;
// protected ArrayList<Pojo> arrayListObject;
NamesListPojo listPojo;
// method to parse the given JSON object by taking the url of the JSON as
// argument
public ArrayList<NamesPojo> getList(String url) {
url=url.replace(" ", "%20");
HttpGet getRequest = new HttpGet(url);
try {
//Log.d(TAG, "url:"+url);
DefaultHttpClient httpClient = new DefaultHttpClient();
Log.d(TAG, "DefaultHttpClient");
HttpResponse getResponse = httpClient.execute(getRequest);
Log.d(TAG, "HttpResponse");
HttpEntity getResponseEntity = getResponse.getEntity();
InputStream httpResponseStream = getResponseEntity.getContent();
Reader inputStreamReader = new InputStreamReader(httpResponseStream);
// json cmpleted
Log.d(TAG, "Before fromJson method");
Gson gson = new Gson();
Log.d(TAG, gson.toString());
Log.d(TAG, "BEFORE JSON METHOD");
this.listPojo = gson.fromJson(inputStreamReader, NamesListPojo.class);
list = new ArrayList<NamesPojo>();
for (NamesPojo pojoObject : this.listPojo.list) {
list.add(pojoObject);
}
} catch (IOException e) {
}
return list;
}
}
// list pojo
import java.util.ArrayList;
import android.util.Log;
public class NamesListPojo {
private static final String TAG = "NamesListPojo";
public ArrayList<NamesPojo> list;
public ArrayList<NamesPojo> getPojoList() { /*getter method*/
return list;
}
public NamesListPojo() {
Log.d(TAG, "construcor");
list = new ArrayList<NamesPojo>();
}
}
// pojo
package com.dialus;
import java.io.Serializable;
public class NamesPojo implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1054589568733453137L;
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public NamesPojo(String name) {
// TODO Auto-generated constructor stub
this.name = name;
}
}
No comments:
Post a Comment