// Friends.json
{"list":[{"name":"Rajesh"},{"name":"Sudheer"},{"name":"Rao"},{"name":"Wadood"},{"name":"Jitendra"},{"name":"Naidu"},{"name":"Srinu"},{"name":"Sujith"},{"name":"Sathish"},{"name":"Amju"},{"name":""}]}
// parsing class
    
     
   
  
  
    
{"list":[{"name":"Rajesh"},{"name":"Sudheer"},{"name":"Rao"},{"name":"Wadood"},{"name":"Jitendra"},{"name":"Naidu"},{"name":"Srinu"},{"name":"Sujith"},{"name":"Sathish"},{"name":"Amju"},{"name":""}]}
// parsing class
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JsonParsingHelper {
 private static final String TAG = JsonParsingHelper.class.getSimpleName();
 public static ArrayList<Category> getCities(String countryJson) throws JSONException {
  ArrayList<Category> cities = new ArrayList<Category>();
   JSONArray names = null;
   // getting JSON string from asset
   JSONObject json = new JSONObject(countryJson);
   try {
    // Getting Array of Contacts
    names = json.getJSONArray("list");
    // looping through All Contacts
    for(int i = 0; i < names.length(); i++){
     JSONObject c = names.getJSONObject(i);
     // Storing each json item in variable     
     Category cat = new Category();
     String name = c.getString("name");
     cat.setName(name);
     cities.add(cat);
    }
   } catch (JSONException e) {
    e.printStackTrace();
   }
   return cities;
  }
}
// pojo class
package com.network;
import android.os.Parcel;
import android.os.Parcelable;
public class Category implements Parcelable {
 String name;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 @Override
 public int describeContents() {
  // TODO Auto-generated method stub
  return 0;
 }
 @Override
 public void writeToParcel(Parcel dest, int flags) {
  // TODO Auto-generated method stub
 }
}
// Utils class
package com.network;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.content.Context;
import android.content.res.AssetManager;
public class Utils {
    public static void CopyStream(InputStream is, OutputStream os)
    {
        final int buffer_size=1024;
        try
        {
            byte[] bytes=new byte[buffer_size];
            for(;;)
            {
              int count=is.read(bytes, 0, buffer_size);
              if(count==-1)
                  break;
              os.write(bytes, 0, count);
            }
        }
        catch(Exception ex){}
    }
 public static String jsonToStringFromAssetFolder(String fileName,
   Context context) {
  String jsonString = null;
  try {
   AssetManager manager = context.getAssets();
   InputStream file = manager.open(fileName);
   byte[] data = new byte[file.available()];
   file.read(data);
   file.close();
   jsonString = new String(data);
  } catch (IOException ie) {
  }
  return jsonString;
 }
}
// List activity
package com.android;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.network.Category;
import com.network.JsonParsingHelper;
import com.network.Utils;
public class ReadingDataFromAsset extends Activity {
 TextView mCategory, mEmptyTextView;
 ProgressBar mProgressBar;
 ListView list;
 String friendsJSON;
 ArrayList<Category> arraylist;
 JsonParsingHelper parser = new JsonParsingHelper();
 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);
  friendsJSON = Utils.jsonToStringFromAssetFolder("Friends.json",
    getApplicationContext());
  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) {
   try {
    arraylist = parser.getFriends(friendsJSON);
   } 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 data 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;
  }
 }
}
// activity_friends_list layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp" >
        <ListView
            android:id="@id/android:list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawSelectorOnTop="false"
            android:padding="10dp"
            android:divider="#000000"
            android:dividerHeight="1dp"
            />
        <TextView
            android:id="@+id/emptyText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:textColor="#000000"
            android:textStyle="bold" />
        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
        <TextView
            android:id="@+id/empty"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/emptyText"
            android:layout_centerHorizontal="true"
            android:text="No results found"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:visibility="gone"/>
    </RelativeLayout>
</LinearLayout>
// row layout  - adapter_content
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dip" >
    <TextView
        android:id="@+id/category"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_toLeftOf="@+id/img"
        android:text="friend name"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000"/>
    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@drawable/right_arrow" />
</RelativeLayout>
 
i found error of "getFrinds" in below code
ReplyDeletearraylist = parser.getFriends(friendsJSON);
"getFrinds" replace with "getCities"
ReplyDeletethen it works...
arraylist = parser.getCities(friendsJSON);