Wednesday, 22 October 2014

how to sort data in array list in android ?

public class MainActivity extends Activity {

ArrayList<String> array_list;
SortAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.listView1);
array_list = new ArrayList<String>();
array_list.add("jhsghd");
array_list.add("kisghd");
array_list.add("ajhsghd");
array_list.add("abjhsghd");
array_list.add("bjhsghd");
array_list.add("cjhsghd");

array_list.add("djhsghd");

array_list.add("ejhsghd");
array_list.add("fjhsghd");
array_list.add("gjhsghd");
array_list.add("hjhsghd");
array_list.add("ijhsghd");


 Collections.sort(array_list, StringDescComparator);

adapter = new SortAdapter(array_list);

list.setAdapter(adapter);

}



    public static Comparator<String> StringAscComparator = new Comparator<String>() {

        public int compare(String app1, String app2) {

            String stringName1 = app1;
            String stringName2 = app2;
           
            return stringName1.compareToIgnoreCase(stringName2);
        }
    };

    //Comparator for Descending Order
    public static Comparator<String> StringDescComparator = new Comparator<String>() {

        public int compare(String app1, String app2) {

            String stringName1 = app1;
            String stringName2 = app2;
           
            return stringName2.compareToIgnoreCase(stringName1);
        }
    };

class SortAdapter extends BaseAdapter {
ArrayList<String> arraydata;
LayoutInflater inflater;
ViewHolder holder;

public SortAdapter(ArrayList<String> arraylist) {
arraydata = arraylist;
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return arraydata.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

class ViewHolder {

TextView text;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.attach, null);

holder.text = (TextView) convertView
.findViewById(R.id.textView1);

convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}

holder.text.setText(arraydata.get(position));

return convertView;
}

}
}

No comments:

Post a Comment