listview when refreshed , not updating the data android - android

I am using custom layout listview with custom adapter. I am also using Pull to refresh listview library
When I pull to refresh the UI changes are notifiable,but actual update in the listview is not happening
HomeFragment.java
public class HomeFragment extends Fragment implements OnClickListener{
private ListView listView;
PullToRefreshListView refreshable_listView;
private MyCustomAdapter mAdapter;
ArrayList<HashMap<String, String>> newsList;
String index_th="0";
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.listview_layout, container,false);
//karthik
refreshable_listView = (PullToRefreshListView) rootView.findViewById(R.id.listView);
refreshable_listView.setOnRefreshListener(new OnRefreshListener<ListView>() {
#Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
// TODO Auto-generated method stub
new GetList().execute(index_th);
}
});
listView=refreshable_listView.getRefreshableView();
}
private class GetList extends AsyncTask<String, Void, Void> {
Dialog dialog = new Dialog(getActivity());
String jsonStr;
ArrayList<HashMap<String, String>> Local_newsList;
#Override
protected void onPreExecute() {
super.onPreExecute();
Local_newsList=new ArrayList<HashMap<String,String>>();
// Showing progress dialog
/*dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout._wait_dialog);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();*/
}
#Override
protected Void doInBackground(String... params) {
if (NetworkCheck.isNetworkAvailable(getActivity()) == true) {
//Log.d("index count for array", params[0]);
if(Integer.parseInt(params[0])==0){
//Log.d("index count for array","Rweached");
newsList = new ArrayList<HashMap<String, String>>();
}
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
jsonStr = sh.makeServiceCall(All_link.HOME_DATA_URL + "/"+params[0]+"/"+ icount,
ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
news = jsonObj.getJSONArray(All_link.TAG_NEWS);
err = jsonObj.getString(All_link.TAG_ERROR);
String more = jsonObj.getString(All_link.TAG_MORE);
Log.e("------>Error",String.valueOf(err));
Log.e("------>More",String.valueOf(more));
if(more.equals("0")){
load_more = 0;
}else{
load_more = 1;
}
// looping through All Contacts
for (int i = 0; i < news.length(); i++) {
//karthik
JSONObject segments_list = news.getJSONObject(i);
for (int plates_count = 0; plates_count < segments_list
.length(); plates_count++) {
String plates = "";
if (plates_count == 3) {
plates = String.valueOf("banner_image");
JSONObject segments_plates = segments_list
.getJSONObject(plates);
//String flag = "banner_image";
String id = segments_plates
.getString(All_link.TAG_BANNER_ID);
String banner_no = segments_plates
.getString(All_link.TAG_BANNER_NO);
String banner_image;
if(segments_plates.getString(All_link.TAG_BANNER_THUMB_URL)==""){
banner_image = All_link.TAG_NO_IMAGE;
}else{
banner_image = segments_plates.getString(All_link.TAG_BANNER_THUMB_URL);
}
String banner_status = segments_plates
.getString(All_link.TAG_BANNER_STATUS);
// tmp hashmap for single news
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_BANNER_ID, id);
news_hashmap.put(All_link.TAG_BANNER_NO,
banner_no);
news_hashmap.put(All_link.TAG_BANNER_THUMB_URL,
banner_image);
news_hashmap.put(All_link.TAG_BANNER_STATUS,
banner_status);
/*news_hashmap
.put(All_link.TAG_BANNER_FLAG, flag);*/
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
addSeparatorItem();
} else {
plates = String.valueOf(plates_count + 1);
JSONObject segments_plates = segments_list
.getJSONObject(plates);
if(segments_plates.getString(All_link.TAG_NEWS_TYPE).equals("2")){
//type_of_news = segments_plates.getString(All_link.TAG_NEWS_TYPE);
addSeparatorItem_for_live();
}
String id = segments_plates.getString(All_link.TAG_ID);
String news_title = segments_plates.getString(All_link.TAG_NEWS_TITLE);
String news_desc = segments_plates.getString(All_link.TAG_DESC);
String segment = segments_plates.getString(All_link.TAG_SEGMENT);
String plate = segments_plates.getString(All_link.TAG_PLATE);
String img ="";
if(segments_plates.getString(All_link.TAG_THUMB_URL).equals("")){
img = All_link.TAG_NO_IMAGE;
}else{
img = segments_plates.getString(All_link.TAG_THUMB_URL);
}
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_ID, id);
news_hashmap.put(All_link.TAG_NEWS_TITLE, news_title);
news_hashmap.put(All_link.TAG_DESC, news_desc);
news_hashmap.put(All_link.TAG_SEGMENT, segment);
news_hashmap.put(All_link.TAG_PLATE, plate);
news_hashmap.put(All_link.TAG_THUMB_URL, img);
//news_hashmap.put(All_link.TAG_BANNER_FLAG, flag);
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
int val = 0;
int val2 = 1;
val = (Integer.parseInt(segment)%2)==0 ? val:val2;
if((Integer.parseInt(segment)%2)!=0){
Log.e("--->CHECKING ODD EVEN", String.valueOf(val));
addSeparatorItem();
addSeparatorItem_for_alternate();
}
}
}
}
} catch (JSONException e) {
Local_newsList=null;
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
} else {
Log.e("Network Error", "Internet Connection Error");
error_flag = 1;
// error = "Internet Connection Error";
}
return null;
}
#Override
protected void onPostExecute(Void result) {
getActivity().runOnUiThread(new Runnable() {
#Override
public void run() {
// TODO Auto-generated method stub
mAdapter = new MyCustomAdapter(getActivity(), newsList);
mAdapter.notifyDataSetChanged();
refreshable_listView.onRefreshComplete();
}
});
super.onPostExecute(result);
}
MyCustomAdapter.java
private class MyCustomAdapter extends BaseAdapter {
private Activity activity;
Boolean result;
private final LayoutInflater inflater = null;
public ImageLoader imageLoader;
private static final int TYPE_ITEM = 0;
private static final int TYPE_SEPARATOR = 1;
private static final int TYPE_SEPARATOR_ALTERNATE = 2;
private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 3;
private int live_type = 0;
private LayoutInflater mInflater;
public MyCustomAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
mInflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
activity = a;
imageLoader = new ImageLoader(activity.getApplicationContext());
}
#Override
public int getItemViewType(int position) {
int separtorValue;
int pos = mSeparatorsSet.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
live_type = mSeparatorsSet_live_layout.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
if(pos==1){
//Log.e("--->if called- position->", String.valueOf(position));
if(mSeparatorsSet_alternate_layout.contains(position)){
//Log.e("--->if called-->", String.valueOf(position));
separtorValue = 2;
}else{
separtorValue = 1;
}
}else{
separtorValue = 0;
}
return separtorValue;
}
#Override
public int getViewTypeCount() {
Log.e("--->TYPE_MAX_COUNT called-->", String.valueOf(TYPE_MAX_COUNT));
return TYPE_MAX_COUNT;
}
#Override
public int getCount() {
return newsList.size();
}
#Override
public HashMap<String, String> getItem(int position) {
return newsList.get(position);
}
#Override
public long getItemId(int position) {
return position;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
NewsViewHolder holder = null;
int type = getItemViewType(position);
Log.e("--->SHISHIR-->", String.valueOf(live_type));
/*System.out.println("getView " + position + " " + convertView
+ " type = " + type);
**/
//Log.e("--->SHISHIR-->", String.valueOf(position) + " -->live"+String.valueOf(mSeparatorsSet_live_layout.first()));
if (convertView == null) {
holder = new NewsViewHolder();
//Log.e("--itempostion", String.valueOf(getItem(type)));
switch (type) {
case TYPE_ITEM:
if (CURRENT_THEME==1) {
convertView = mInflater.inflate(
R.layout.theme_one_row_small, null);
}
else{
convertView = mInflater.inflate(
R.layout.theme_one_row_small_new, null);
}
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
imageLoader
.DisplayImage(
com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(
All_link.TAG_THUMB_URL),
holder.img);
break;
case TYPE_SEPARATOR_ALTERNATE:
if (CURRENT_THEME==1) {
convertView = mInflater
.inflate(R.layout.theme_one_row_big, null);
}
else{
convertView = mInflater
.inflate(R.layout.theme_one_row_big_new, null);
}
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
case TYPE_SEPARATOR:
convertView = mInflater
.inflate(R.layout.theme_banner, null);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
}
convertView.setTag(holder);
} else {
holder = (NewsViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_ITEM:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
break;
case TYPE_SEPARATOR_ALTERNATE:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
//Log.e("--itempostion Live", "live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
Log.e("karthik", "karthik "+com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL));
break;
case TYPE_SEPARATOR:
Log.e("--banner Images", com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_BANNER_ID)));
holder.flag.setText(newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
break;
}
holder.name.setText(String.valueOf(newsList.get(position).get(All_link.TAG_NEWS_TITLE)));
return convertView;
}
}

You forgot to setAdapter :
mAdapter = new MyCustomAdapter(getActivity(), newsList);
refreshable_listView.setAdapter(mAdapter);

Related

Fully displayed listview image is not displaying properly

its my following code.
public class Wishlist extends Activity {
Button checkout;
ListView ListCart;
String name, cusid, ffname, llname, phone, fax, password, email;
String[] qu, s;
int[] g;
int k = 0;
String cost;
ProgressDialog pDialog = null;
List<CartProducts> product_list;
Context ctx;
Integer pos = 0, total = 0, q = 0, gtot = 0, total1 = 0, sum = 0;
SQLiteDatabase FavData;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_modifywishlist);
Intent page1 = getIntent();
cusid = page1.getStringExtra("cus_id");
ffname = page1.getStringExtra("fname");
llname = page1.getStringExtra("lname");
phone = page1.getStringExtra("ph");
fax = page1.getStringExtra("fax");
password = page1.getStringExtra("password");
email = page1.getStringExtra("email");
ListCart = (ListView) findViewById(R.id.list_item);
pDialog = new ProgressDialog(this);
ctx = this;
FavData = Wishlist.this.openOrCreateDatabase("SHOPPING_CARTFAV", MODE_PRIVATE, null);
FavData.execSQL("CREATE TABLE IF NOT EXISTS fav_items(product_id varchar, name varchar, price varchar, quantity integer, model varchar, image varchar, manufacturer varchar )");
ArrayList<CartProducts> myList = new ArrayList<CartProducts>();
Cursor crsr = FavData.rawQuery("SELECT * FROM fav_items", null);
final String[] productID = new String[crsr.getCount()];
final String[] ProductName = new String[crsr.getCount()];
final String[] ProductPrice = new String[crsr.getCount()];
final String[] ProductQuantity = new String[crsr.getCount()];
final String[] ProductModel = new String[crsr.getCount()];
final String[] ProductImage = new String[crsr.getCount()];
final String[] ProductManufacturer = new String[crsr.getCount()];
int j = 0;
while (crsr.moveToNext()) {
String id = crsr.getString(crsr.getColumnIndex("product_id"));
productID[j] = id;//product_id,name,price,quantity,model,image,manufacturer
name = crsr.getString(crsr.getColumnIndex("name"));
ProductName[j] = name;
String price = crsr.getString(crsr.getColumnIndex("price"));
ProductPrice[j] = price;
String s = ProductPrice[j].toString();
s = s.replace(",", "");
String[] parts = s.split("\\."); // escape .
String part1 = parts[0];
String part2 = parts[1];
part1 = part1.replace("₹", "");
total = Integer.parseInt(part1); // Toast.makeText(Table.this, part1, Toast.LENGTH_SHORT).show();
String qnty = crsr.getString(crsr.getColumnIndex("quantity"));
ProductQuantity[j] = qnty;
String s2 = ProductQuantity[j].toString();
total1 = Integer.parseInt(s2);
sum = total * total1;
String model = crsr.getString(crsr.getColumnIndex("model"));
ProductModel[j] = model;
String image = crsr.getString(crsr.getColumnIndex("image"));
ProductImage[j] = image;
String manufacturer = crsr.getString(crsr.getColumnIndex("manufacturer"));
ProductManufacturer[j] = manufacturer;
//Toast.makeText(getApplicationContext(), productID[j] + "" + ProductName[j] + "" + ProductPrice[j] + "" + ProductQuantity[j] + "" + ProductModel[j] + "" + ProductImage[j] + "" + ProductManufacturer[j], Toast.LENGTH_SHORT).show();
myList.add(new CartProducts(productID[j], ProductName[j], ProductPrice[j], ProductQuantity[j], ProductModel[j], ProductImage[j], ProductManufacturer[j]));
gtot = gtot + sum;
j++;
}
ListCart.setAdapter(new Wishlist_Listadapter(ctx, R.layout.activity_wishlist_cartrow, myList));
getListViewSize(ListCart);
String s1 = ProductPrice.toString();
}
public static void getListViewSize(ListView myListView) {
ListAdapter myListAdapter = myListView.getAdapter();
if (myListAdapter == null) {
//do nothing return null
return;
}
//set listAdapter in loop for getting final size
int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
View listItem = myListAdapter.getView(size, null, myListView);
if (listItem != null) {
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
}
//setting listview item in adapter
ViewGroup.LayoutParams params = myListView.getLayoutParams();
if (params != null) {
params.height = totalHeight
+ (myListView.getDividerHeight() * (myListAdapter
.getCount() - 1));
myListView.setLayoutParams(params);
// print height of adapter on log
}
myListView.requestLayout();
// print height of adapter on log
Log.i("height of listItem:", String.valueOf(totalHeight));
}
}
Adapter class
Public class Wishlist_Listadapter extends ArrayAdapter<CartProducts> {
Bitmap bitmap;
ImageView img;
String urll, name,totalps;
SQLiteDatabase FavData;
Integer total = 0, quanty = 1, grandtot = 0, i = 0;
String it;
Button addbtn, minbtn;
EditText editqu;
int total1 = 0, quantity=0, fulltotal = 0, sum;
SQLiteOpenHelper dbhelper;
Wishlist_Listadapter cart = Wishlist_Listadapter.this;
private int resource;
private LayoutInflater inflater;
private Context context;
int count=1 ;
public Wishlist_Listadapter(Context ctx, int resourceId, List<CartProducts> objects) {
super(ctx, resourceId, objects);
resource = resourceId;
inflater = LayoutInflater.from(ctx);
context = ctx;
}
public View getView(int position, View convertView, ViewGroup parent) {
/* create a new view of my layout and inflate it in the row */
convertView = (RelativeLayout) inflater.inflate(resource, null);
final ViewHolder viewholder;
viewholder = new ViewHolder();
final CartProducts banqt = getItem(position);
totalps=(banqt.getPrice());
String s = totalps.toString();
s = s.replace(",", "");
String[] parts = s.split("\\."); // escape .
String part1 = parts[0];
String part2 = parts[1];
part1 = part1.replace("₹", "");// Toast.makeText(getContext(), part1, Toast.LENGTH_LONG).show();
total = Integer.parseInt(part1);
quanty = Integer.parseInt(banqt.getQuantity());
grandtot = total *quanty;
viewholder.total = (TextView) convertView.findViewById(R.id.txt_total);
viewholder.total.setText(String.valueOf(grandtot));
Button delet = (Button) convertView.findViewById(R.id.btn_remove);
delet.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
/*delete function*/
it = banqt.getProduct_id();
FavData = context.openOrCreateDatabase("SHOPPING_CARTFAV", context.MODE_PRIVATE, null);
FavData.execSQL("DELETE FROM fav_items WHERE product_id=" + it + ";");
Intent intent = ((Wishlist) context).getIntent();
((Wishlist) context).finish();
context.startActivity(intent);
}
});
viewholder.txtName = (TextView) convertView.findViewById(R.id.product_name);
viewholder.txtName.setText(banqt.getName());
img = (ImageView) convertView.findViewById(R.id.img_product);
urll = banqt.getImage().toString();
urll = urll.replaceAll(" ", "%20");// Toast.makeText(getContext(),urll,Toast.LENGTH_LONG).show();
new LoadImage().execute(urll);
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView total;
EditText editqu;
TextView txtprice;
}
private class LoadImage extends AsyncTask<String, String, Bitmap> {
#Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Bitmap doInBackground(String... args) {
try {
bitmap = BitmapFactory.decodeStream((InputStream) new URL(args[0]).getContent());
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap image) {
if (image != null) {
img.setImageBitmap(image);
// pDialog.dismiss();
} else {
// pDialog.dismiss();
Toast.makeText(getContext(), "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show();
}
}
}
}
listview is working properly
i just inflate cardview in listview.
when using this code image cannot displaying. only dispaly last image in list view
params.height = totalHeight
+ (myListView.getDividerHeight() * (myListAdapter
.getCount() - 1));
my problem is: In listview only displaying last image
check this image:
Try adding your ImageView to Holder class and use like viewholder.img.setImageBitmap(new LoadImage().execute(urll)) and change the return type to Bitmap
Use BaseAdapter instead of ArrayAdapter. Load and show image with UIL, Picasso or other image loader library.
public class ImageAdapter extends BaseAdapter {
private List<ImageBean> list;
private ArrayList<ImageBean> arraylist;
private LayoutInflater inflater;
public ImageAdapter(Context context, List<ImageBean> list) {
this.list = list;
inflater = LayoutInflater.from(context);
this.arraylist = new ArrayList<>();
}
#Override
public int getCount() {
return list.size();
}
#Override
public ImageBean getItem(int position) {
return list.get(position);
}
#Override
public long getItemId(int position) {
return position;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.recycler_view_item, parent, false);
holder.ivImage = (ImageView) convertView.findViewById(R.id.ivImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// Loading image with UIL example
ImageLoader.getInstance().displayImage(getItem(position).getUrl(), holder.ivImage, ImageUtils.UIL_USER_AVATAR_DISPLAY_OPTIONS);
return convertView;
}
private class ViewHolder {
public ImageView ivImage;
}
}

ArrayList Index out of bounds exception in Custom Adapter with QuickReturn

First i have an custom adapter which works properly. Then i implement quickreturn for my listview. Now the adapter class give me an out of bounds exception. I tried change getCount return value but it gives error still.
My adapter class:
public class KanalAdapter extends BaseAdapter {
Context context;
String charset;
String query;
String kanaladi;
String veritabani_id;
ArrayList<OfficialKanal> officialKanals;
ArrayList<NormalKanal> normalKanals;
ArrayList<Object> kanallar = new ArrayList();
ArrayList<Kanal> channelbaba;
int OFFICIAL_KANAL = 0;
int NORMAL_KANAL= 1;
LayoutInflater lala;
KanalaElemanEkle kEE;
public KanalAdapter(Context context , ArrayList<OfficialKanal> officiallar , ArrayList<NormalKanal> normaller
, ArrayList<Kanal> channelbaba){
this.context = context;
officialKanals = officiallar;
normalKanals = normaller;
this.channelbaba = channelbaba;
for(int i = 0 ; i < officiallar.size() ; i++){
kanallar.add(officiallar.get(i));
}
for(int i = 0 ; i < normaller.size() ; i++){
kanallar.add(normaller.get(i));
}
Log.i("tago" , "tagtag");
veritabani_id = SharedIdCek();
lala = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
private String SharedIdCek() {
SharedPreferences sp = context.getSharedPreferences("kullaniciverileri", Context.MODE_PRIVATE);
String veritabani_id = sp.getString("veritabani_id", "default id");
return veritabani_id;
}
public int getCount() {
Log.i("tago" , "getCount ="+(channelbaba.size()+1));
return (channelbaba.size()+1);
}
public Object getItem(int i) {
Log.i("tago" , "getItem = " + channelbaba.get(i));
return channelbaba.get(i);
}
public long getItemId(int i) {
Log.i("tago" , "getItemId =" + i);
return i;
}
public int getItemViewType(int position) {
Object item = getItem(position);
Kanal kanal = (Kanal)item;
if(kanal.official){
return OFFICIAL_KANAL;
}else if(!kanal.official){
return NORMAL_KANAL;
}
return -1;
}
public int getViewTypeCount() {
return 2;
}
public View getView(int position, View convertView, ViewGroup viewGroup) {
KanalHolder holder = null;
final int pozisyon = position;
Object currentKanal = getItem(position);
Kanal kanal = (Kanal) currentKanal;
if(convertView==null) {
holder = new KanalHolder();
if (kanal.official) {
convertView = lala.inflate(R.layout.officialkanal, null);
holder.image2 = (ImageView) convertView.findViewById(R.id.imageView5);
holder.tv3 = (TextView) convertView.findViewById(R.id.textView4);
holder.tv4 = (TextView) convertView.findViewById(R.id.textView8);
holder.buton1 = (ImageButton) convertView.findViewById(R.id.button7);
holder.buton2 = (ImageButton) convertView.findViewById(R.id.button8);
holder.buton3 = (ImageButton) convertView.findViewById(R.id.imageButton7);
Log.i("tago", "tagtagatagtagtagatg");
}
if (!kanal.official) {
convertView = lala.inflate(R.layout.normalkanal, null);
holder.image1 = (ImageView) convertView.findViewById(R.id.imageView5);
holder.tv1 = (TextView) convertView.findViewById(R.id.textView4);
holder.tv2 = (TextView) convertView.findViewById(R.id.textView8);
Log.i("tago", "tagtagtag");
}
convertView.setTag(holder);
}else{
holder = (KanalHolder)convertView.getTag();
}
if(kanal.official){
Drawable a = ContextCompat.getDrawable(context , R.drawable.taylanprof);
holder.image2.setBackground(a);
holder.tv3.setText(channelbaba.get(position).getKanaladi());
holder.image2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
kEE = new KanalaElemanEkle();
kEE.execute(kanaladi);
Intent intent = new Intent(context , GrupSohbeti.class);
context.startActivity(intent);
}
});
}
if(!kanal.official){
holder.image1.setImageResource(R.mipmap.apoprof);
holder.tv1.setText(channelbaba.get(position).getKanaladi());
holder.image1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
kanaladi = channelbaba.get(pozisyon).getKanaladi();
Log.i("tago" , kanaladi);
kEE = new KanalaElemanEkle();
kEE.execute(kanaladi);
Intent intent = new Intent(context , GrupSohbeti.class);
intent.putExtra("kanaladi" , kanaladi);
context.startActivity(intent);
}
});
}
return convertView;
}
static class KanalHolder{
public ImageView image1,image2;
public TextView tv1 , tv2,tv3,tv4;
public ImageButton buton1,buton2,buton3;
}
private class KanalaElemanEkle extends AsyncTask<String,Void,String>{
protected String doInBackground(String... params) {
charset = "utf-8";
String param1 = "id";
String param2 = "name";
try {
query = String.format("param1=%s&param2=%s", URLEncoder.encode(param1, charset), URLEncoder.encode(param2, charset));
} catch (IOException e) {
e.printStackTrace();
}
Log.i("tago", "KanalAdapter kanala eleman ekleme ba�lat�ld�");
try {
return kanaliekle(params[0]);
} catch (Exception e) {
e.printStackTrace();
return "olmadi";
}
}
private String kanaliekle(String kanaladi) {
HttpURLConnection sconnection = null;
try {
sconnection = (HttpURLConnection) new URL("http://www.ceng.metu.edu.tr/~e1818871/shappy/join_us.php?id=" + veritabani_id + "&name=" + kanaladi).openConnection();
Log.i("tago", "Page Fragment1 yeni kanal kur bagı kuruldu");
} catch (IOException e) {
e.printStackTrace();
}
sconnection.setDoOutput(true);
sconnection.setDoInput(true);
sconnection.setRequestProperty("User-Agent", "Mozilla/5.0 ( compatible ) ");
sconnection.setRequestProperty("Accept", "* /*");
sconnection.setRequestProperty("Accept-Charset", charset);
sconnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset);
try {
OutputStream output = new BufferedOutputStream(sconnection.getOutputStream());
output.write(query.getBytes(charset));
output.close();
int a = sconnection.getResponseCode();
String b = sconnection.getResponseMessage();
Log.i("tago", "rerere" + a + " " + b);
} catch (IOException e) {
e.printStackTrace();
}
return "alabama";
}
}
}
It gives this error:
10-29 22:06:06.885 4819-4819/com.example.bahadir.myapplicationn E/AndroidRuntime: java.lang.IndexOutOfBoundsException: Invalid index 6, size is 6
10-29 22:06:06.885 4819-4819/com.example.bahadir.myapplicationn E/AndroidRuntime: at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
10-29 22:06:06.885 4819-4819/com.example.bahadir.myapplicationn E/AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:308)
10-29 22:06:06.885 4819-4819/com.example.bahadir.myapplicationn E/AndroidRuntime: at com.example.bahadir.myapplicationn.KanalAdapter.getItem(KanalAdapter.java:72)
10-29 22:06:06.885 4819-4819/com.example.bahadir.myapplicationn E/AndroidRuntime: at com.example.bahadir.myapplicationn.KanalAdapter.getItemViewType(KanalAdapter.java:82)
How can i solve this ?
public int getCount() {
Log.i("tago" , "getCount ="+(channelbaba.size()+1));
return (channelbaba.size()+1);
}
try returing kanal.size()
or try removing +1 if the size of kanal and channelbaba are same

.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification android

I am using AyncTask to get data from server and set it to listview .
For notifying the changes to the listview I am calling mAdapter.notifyDataSetChanged(); in onPostExecute() method
I am using Pull to refresh listview library
Still I am getting IllegalStateException
listView.setOnScrollListener(new OnScrollListener() {
#Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
#Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
int count = Integer.parseInt(index_temp)+6;
System.out.println("Checking "+ listView.getLastVisiblePosition());
System.out.println("----->Checking loadmore:"+ load_more);
System.out.println("----->Checking actual:"+ count);
if (listView.getLastVisiblePosition()+1 == count) {
if(load_more==1){
index_temp = String.valueOf(Integer.parseInt(icount) + Integer.parseInt(index_temp));
new GetList_ontouch().execute(index_temp);
}
}
}
});
GetList_ontouch
private class GetList_ontouch extends AsyncTask<String, Void, Void> {
#Override
protected void onPreExecute() {
super.onPreExecute();
progressBar1.setVisibility(0);
}
#Override
protected Void doInBackground(String... params) {
if (NetworkCheck.isNetworkAvailable(getActivity()) == true) {
Log.d("index count for array", params[0]);
if(Integer.parseInt(params[0])==0){
Log.d("index count for array","Reached");
newsList = new ArrayList<HashMap<String, String>>();
}
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(All_link.HOME_DATA_URL + "/"+params[0]+"/"+ icount,
ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
news = jsonObj.getJSONArray(All_link.TAG_NEWS);
String err = jsonObj.getString(All_link.TAG_ERROR);
String more = jsonObj.getString(All_link.TAG_MORE);
Log.e("------>Error",String.valueOf(err));
Log.e("------>More",String.valueOf(more));
if(more.equals("0")){
load_more = 0;
}else{
load_more = 1;
}
// looping through All Contacts
for (int i = 0; i < news.length(); i++) {
JSONObject segments_list = news.getJSONObject(i);
for (int plates_count = 0; plates_count < segments_list
.length(); plates_count++) {
String plates = "";
if (plates_count == 3) {
plates = String.valueOf("banner_image");
JSONObject segments_plates = segments_list
.getJSONObject(plates);
//String flag = "banner_image";
String id = segments_plates
.getString(All_link.TAG_BANNER_ID);
String banner_no = segments_plates
.getString(All_link.TAG_BANNER_NO);
String banner_image;
if(segments_plates.getString(All_link.TAG_BANNER_THUMB_URL)==""){
banner_image = All_link.TAG_NO_IMAGE;
}else{
banner_image = segments_plates.getString(All_link.TAG_BANNER_THUMB_URL);
}
String banner_status = segments_plates
.getString(All_link.TAG_BANNER_STATUS);
// tmp hashmap for single news
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_BANNER_ID, id);
news_hashmap.put(All_link.TAG_BANNER_NO,
banner_no);
news_hashmap.put(All_link.TAG_BANNER_THUMB_URL,
banner_image);
news_hashmap.put(All_link.TAG_BANNER_STATUS,
banner_status);
/*news_hashmap
.put(All_link.TAG_BANNER_FLAG, flag);*/
// adding contact to contact list
//newsList.add(news_hashmap);
addSeparatorItem();
} else {
plates = String.valueOf(plates_count + 1);
JSONObject segments_plates = segments_list
.getJSONObject(plates);
if(segments_plates.getString(All_link.TAG_NEWS_TYPE).equals("2")){
//type_of_news = segments_plates.getString(All_link.TAG_NEWS_TYPE);
addSeparatorItem_for_live();
}
String id = segments_plates
.getString(All_link.TAG_ID);
String news_title = segments_plates
.getString(All_link.TAG_NEWS_TITLE);
String news_desc = segments_plates
.getString(All_link.TAG_DESC);
String segment = segments_plates
.getString(All_link.TAG_SEGMENT);
String plate = segments_plates
.getString(All_link.TAG_PLATE);
String img ="";
if(segments_plates.getString(All_link.TAG_THUMB_URL).equals("")){
img = All_link.TAG_NO_IMAGE;
}else{
img = segments_plates.getString(All_link.TAG_THUMB_URL);
}
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_ID, id);
news_hashmap.put(All_link.TAG_NEWS_TITLE, news_title);
news_hashmap.put(All_link.TAG_DESC, news_desc);
news_hashmap.put(All_link.TAG_SEGMENT, segment);
news_hashmap.put(All_link.TAG_PLATE, plate);
news_hashmap.put(All_link.TAG_THUMB_URL, img);
//news_hashmap.put(All_link.TAG_BANNER_FLAG, flag);
// adding contact to contact list
newsList.add(news_hashmap);
int val = 0;
int val2 = 1;
val = (Integer.parseInt(segment)%2)==0 ? val:val2;
if((Integer.parseInt(segment)%2)!=0){
Log.e("--->CHECKING ODD EVEN", String.valueOf(val));
addSeparatorItem();
addSeparatorItem_for_alternate();
}
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
} else {
Log.e("Network Error", "Internet Connection Error");
error_flag = 1;
Log.e("error", "kareeScroll error_flag = 1");
// error = "Internet Connection Error";
}
return null;
}
#Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if(error_flag==1){
/*listView.setVisibility(8);
main_error.setText("Internet Connection Error! Please check your network settings and try again");
main_error.setVisibility(0);*/
String jsonStr_temp=sharedPrefs.getString("jsonStr", "");
if (jsonStr_temp=="") {
listView.setVisibility(8);
main_error.setText("Internet Connection Error! Please check your network settings and try again");
main_error.setVisibility(0);
img_error.setVisibility(0);
}
else{
//newsList=null;
new GetList_refresh().execute(index_th,jsonStr_temp);
//newsList = new ArrayList<HashMap<String, String>>();
}
}
else{
listView.setVisibility(0);
main_error.setText("");
main_error.setVisibility(8);
int currentPosition = listView.getFirstVisiblePosition();
mAdapter = new MyCustomAdapter(getActivity(), newsList);
//testing
listView.setAdapter(mAdapter);
//refreshable_listView.setAdapter(mAdapter);
// Setting new scroll position
listView.setSelection(currentPosition);
//mAdapter.notifyDataSetChanged();
}
// Dismiss the progress dialog
progressBar1.setVisibility(8);
}
}
GetList_refresh // called when no network .This shows data got from local variable
private class GetList_refresh extends AsyncTask<String, String, Void> {
Dialog dialog = new Dialog(getActivity());
String jsonStr;
#Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout._wait_dialog);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
}
#Override
protected Void doInBackground(String... params) {
//if (NetworkCheck.isNetworkAvailable(getActivity()) == true) {
//Log.d("index count for array", params[0]);
//if(Integer.parseInt(params[0])==0){
//Log.d("index count for array","Rweached");
//newsList = new ArrayList<HashMap<String, String>>();
//}
jsonStr=params[1];
Log.e("json","karjson "+jsonStr);
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
//jsonStr = sh.makeServiceCall(All_link.HOME_DATA_URL + "/"+params[0]+"/"+ icount,
//ServiceHandler.GET);
editor.putString("jsonStr", jsonStr);
editor.commit();
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
news = jsonObj.getJSONArray(All_link.TAG_NEWS);
err = jsonObj.getString(All_link.TAG_ERROR);
String more = jsonObj.getString(All_link.TAG_MORE);
Log.e("------>Error",String.valueOf(err));
Log.e("------>More",String.valueOf(more));
if(more.equals("0")){
load_more = 0;
}else{
load_more = 1;
}
// looping through All Contacts
for (int i = 0; i < news.length(); i++) {
//karthik
JSONObject segments_list = news.getJSONObject(i);
for (int plates_count = 0; plates_count < segments_list
.length(); plates_count++) {
String plates = "";
if (plates_count == 3) {
plates = String.valueOf("banner_image");
JSONObject segments_plates = segments_list
.getJSONObject(plates);
//String flag = "banner_image";
String id = segments_plates
.getString(All_link.TAG_BANNER_ID);
String banner_no = segments_plates
.getString(All_link.TAG_BANNER_NO);
String banner_image;
if(segments_plates.getString(All_link.TAG_BANNER_THUMB_URL)==""){
banner_image = All_link.TAG_NO_IMAGE;
}else{
banner_image = segments_plates.getString(All_link.TAG_BANNER_THUMB_URL);
}
String banner_status = segments_plates
.getString(All_link.TAG_BANNER_STATUS);
// tmp hashmap for single news
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_BANNER_ID, id);
news_hashmap.put(All_link.TAG_BANNER_NO,
banner_no);
news_hashmap.put(All_link.TAG_BANNER_THUMB_URL,
banner_image);
news_hashmap.put(All_link.TAG_BANNER_STATUS,
banner_status);
/*news_hashmap
.put(All_link.TAG_BANNER_FLAG, flag);*/
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
addSeparatorItem();
} else {
plates = String.valueOf(plates_count + 1);
JSONObject segments_plates = segments_list
.getJSONObject(plates);
if(segments_plates.getString(All_link.TAG_NEWS_TYPE).equals("2")){
//type_of_news = segments_plates.getString(All_link.TAG_NEWS_TYPE);
addSeparatorItem_for_live();
}
String id = segments_plates.getString(All_link.TAG_ID);
String news_title = segments_plates.getString(All_link.TAG_NEWS_TITLE);
String news_desc = segments_plates.getString(All_link.TAG_DESC);
String segment = segments_plates.getString(All_link.TAG_SEGMENT);
String plate = segments_plates.getString(All_link.TAG_PLATE);
String img ="";
if(segments_plates.getString(All_link.TAG_THUMB_URL).equals("")){
img = All_link.TAG_NO_IMAGE;
}else{
img = segments_plates.getString(All_link.TAG_THUMB_URL);
}
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_ID, id);
news_hashmap.put(All_link.TAG_NEWS_TITLE, news_title);
news_hashmap.put(All_link.TAG_DESC, news_desc);
news_hashmap.put(All_link.TAG_SEGMENT, segment);
news_hashmap.put(All_link.TAG_PLATE, plate);
news_hashmap.put(All_link.TAG_THUMB_URL, img);
//news_hashmap.put(All_link.TAG_BANNER_FLAG, flag);
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
int val = 0;
int val2 = 1;
val = (Integer.parseInt(segment)%2)==0 ? val:val2;
if((Integer.parseInt(segment)%2)!=0){
Log.e("--->CHECKING ODD EVEN", String.valueOf(val));
addSeparatorItem();
addSeparatorItem_for_alternate();
}
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
#Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
mAdapter.notifyDataSetChanged();
refreshable_listView.invalidate();
refreshable_listView.requestLayout();
refreshable_listView.onRefreshComplete();
super.onPostExecute(result);
// Dismiss the progress dialog
if (dialog.isShowing()){
dialog.dismiss();
}
/*SharedPreferences sharedPrefs = getActivity().getSharedPreferences(All_link.MyPREFERENCES,
Context.MODE_PRIVATE);
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());*/
//For Breaking News Setting
if (sharedPrefs.getInt("prefswtch4", 1) == 1) {
if (All_link.GLOBAL_BREAKING_FLAG == 0) {
new getBreakingNews().execute();
}
}
//For Location Setting
if (sharedPrefs.getInt("prefswtch1", 1) == 1) {
} else {
}
//For Ticker Setting
if (sharedPrefs.getInt("prefswtch2", 1) == 1) {
new getTicker().execute();
} else {
marque.setVisibility(8);
}
}
#Override
protected void onCancelled() {
// TODO Auto-generated method stub
refreshable_listView.onRefreshComplete();
}
}
OnCreateView ...
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
sharedPrefs = getActivity().getSharedPreferences(All_link.MyPREFERENCES,
Context.MODE_PRIVATE);
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
editor=sharedPrefs.edit();
View rootView = inflater.inflate(R.layout.listview_layout, container,false);
View footer_image=inflater.inflate(R.layout.listview_image_footer, null,false);
//footer_image.setClickable(false);
/* get theme webservice*/
StrictMode.ThreadPolicy policy1 = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy1);
userFunction=new UserFunctions();
//Breaking News Section
slide = AnimationUtils.loadAnimation(getActivity(), R.anim.slidedown);
fadeOut = AnimationUtils.loadAnimation(getActivity(), R.anim.fadeout);
pan_breaking_new = (LinearLayout)rootView.findViewById(R.id.pan_breaking_new);
//pan_breaking_new.setOnClickListener(this);
pan_breaking_new.setVisibility(8);
btn_close= (ImageView) rootView.findViewById(R.id.btn_close);
btn_close.setOnClickListener(this);
img_share= (ImageView) rootView.findViewById(R.id.img_share);
img_share.setOnClickListener(this);
//END Breaking News Section
//Ticker
marque = (ScrollingTextView)rootView.findViewById(R.id.txtTicker);
marque.setVisibility(8);
//END ticker
main_error = (TextView) rootView.findViewById(R.id.main_error);
main_error.setText("Loading...");
img_error = (ImageView) rootView.findViewById(R.id.img_error);
img_error.setOnClickListener(this);
progressBar1 = (ProgressBar) rootView.findViewById(R.id.progressBar1);
progressBar1.setVisibility(8);
//karthik
refreshable_listView = (PullToRefreshListView) rootView.findViewById(R.id.listView);
listView=refreshable_listView.getRefreshableView();
listView.addFooterView(footer_image, null, false);
refreshable_listView.setOnRefreshListener(new OnRefreshListener<ListView>() {
#Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
// TODO Auto-generated method stub
listView=refreshable_listView.getRefreshableView();
try {
getTheme();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new GetList().execute(index_th);
}
});
newsList = new ArrayList<HashMap<String, String>>();
mAdapter = new MyCustomAdapter(getActivity(), newsList);
refreshable_listView.setAdapter(mAdapter);
//listView.addHeaderView(pan_breaking_new);
mSeparatorsSet = new TreeSet<Integer>();
mSeparatorsSet_alternate_layout = new TreeSet<Integer>();
mSeparatorsSet_live_layout = new TreeSet<Integer>();
new GetList_with_dialog().execute(index_th); // same as GetList(), but displays dialog
return rootView;
}
MyCursorAdapter
private class MyCustomAdapter extends BaseAdapter {
private Activity activity;
Boolean result;
private final LayoutInflater inflater = null;
public ImageLoader imageLoader;
private static final int TYPE_ITEM = 0;
private static final int TYPE_SEPARATOR = 1;
private static final int TYPE_SEPARATOR_ALTERNATE = 2;
private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 3;
private int live_type = 0;
private LayoutInflater mInflater;
public MyCustomAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
mInflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
activity = a;
//newsList=d;
imageLoader = new ImageLoader(activity.getApplicationContext());
}
#Override
public int getItemViewType(int position) {
int separtorValue;
int pos = mSeparatorsSet.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
live_type = mSeparatorsSet_live_layout.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
if(pos==1){
//Log.e("--->if called- position->", String.valueOf(position));
if(mSeparatorsSet_alternate_layout.contains(position)){
//Log.e("--->if called-->", String.valueOf(position));
separtorValue = 2;
}else{
separtorValue = 1;
}
}else{
separtorValue = 0;
}
return separtorValue;
}
#Override
public int getViewTypeCount() {
Log.e("--->TYPE_MAX_COUNT called-->", String.valueOf(TYPE_MAX_COUNT));
return TYPE_MAX_COUNT;
}
#Override
public int getCount() {
return newsList.size();
}
#Override
public HashMap<String, String> getItem(int position) {
return newsList.get(position);
}
#Override
public long getItemId(int position) {
return position;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
NewsViewHolder holder = null;
int type = getItemViewType(position);
Log.e("--->SHISHIR-->", String.valueOf(live_type));
/*System.out.println("getView " + position + " " + convertView
+ " type = " + type);
**/
//Log.e("--->SHISHIR-->", String.valueOf(position) + " -->live"+String.valueOf(mSeparatorsSet_live_layout.first()));
if (convertView == null) {
holder = new NewsViewHolder();
//Log.e("--itempostion", String.valueOf(getItem(type)));
switch (type) {
case TYPE_ITEM:
if (CURRENT_THEME==1) {
convertView = mInflater.inflate(
R.layout.theme_one_row_small, null);
}
else{
convertView = mInflater.inflate(
R.layout.theme_one_row_small_new, null);
}
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
imageLoader
.DisplayImage(
com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(
All_link.TAG_THUMB_URL),
holder.img);
break;
case TYPE_SEPARATOR_ALTERNATE:
if (CURRENT_THEME==1) {
convertView = mInflater
.inflate(R.layout.theme_one_row_big, null);
}
else{
convertView = mInflater
.inflate(R.layout.theme_one_row_big_new, null);
}
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
case TYPE_SEPARATOR:
convertView = mInflater
.inflate(R.layout.theme_banner, null);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
}
convertView.setTag(holder);
} else {
holder = (NewsViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_ITEM:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
break;
case TYPE_SEPARATOR_ALTERNATE:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
//Log.e("--itempostion Live", "live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
Log.e("karthik", "karthik "+com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL));
break;
case TYPE_SEPARATOR:
Log.e("--banner Images", com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_BANNER_ID)));
holder.flag.setText(newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
break;
}
holder.name.setText(String.valueOf(newsList.get(position).get(All_link.TAG_NEWS_TITLE)));
return convertView;
}
}
You shouldn't call in doInBackground() any method that updates the list.You should collect everything in doInBackground, return it as a result and then update the list in onPostExecute.
because onPostExecute and onProgressUpdate are executed in the UI thread, while doInBackground is executed in a different Thread.
Don't recreate your adapter each time doInBackground is call
mAdapter = new MyCustomAdapter(getActivity(), newsList);
listView.setAdapter(mAdapter);
Create it once and for all somewhere relevant.
mAdapter = new MyCustomAdapter(getActivity(), new ArrayList<HashMap<String, String>>());
listView.setAdapter(mAdapter);
And then return the List in doInBackground
return newsList;
And change onPostExecute like this, to integrate results in the adapter. onPostExecute runs in UI thread and has been designed to handle that kind of operation, like updating an adapter.
#Override
protected void onPostExecute(List<HashMap<String, String>> result)
{
// Assuming here MyCustomAdapter is an ArrayAdapter
mAdapter.clear();
mAdapter.addAll(result);
mAdapter.notifyDataSetChanged();
// [...]
}
The AsyncTask would look like this :
private class GetList_refresh extends AsyncTask<String, String, List<HashMap<String, String>>>

listview data disappears while refreshing android

I am successful in implementing Pull to refresh listview with already available library.NoW the problem is while refreshing, the already displayed data in listview disappears (blank while page) , and when done with refreshing the data gets displayed with updated data , which is not a expected result
public class HomeFragment extends Fragment implements OnClickListener{
private ListView listView;
PullToRefreshListView refreshable_listView;
private MyCustomAdapter mAdapter;
ArrayList<HashMap<String, String>> newsList;
String index_th="0";
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.listview_layout, container,false);
//karthik
refreshable_listView = (PullToRefreshListView) rootView.findViewById(R.id.listView);
refreshable_listView.setOnRefreshListener(new OnRefreshListener<ListView>() {
#Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
// TODO Auto-generated method stub
new GetList().execute(index_th);
}
});
listView=refreshable_listView.getRefreshableView();
}
private class GetList extends AsyncTask<String, Void, Void> {
Dialog dialog = new Dialog(getActivity());
String jsonStr;
ArrayList<HashMap<String, String>> Local_newsList;
#Override
protected void onPreExecute() {
super.onPreExecute();
Local_newsList=new ArrayList<HashMap<String,String>>();
// Showing progress dialog
/*dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout._wait_dialog);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();*/
}
#Override
protected Void doInBackground(String... params) {
if (NetworkCheck.isNetworkAvailable(getActivity()) == true) {
//Log.d("index count for array", params[0]);
if(Integer.parseInt(params[0])==0){
//Log.d("index count for array","Rweached");
newsList = new ArrayList<HashMap<String, String>>();
}
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
jsonStr = sh.makeServiceCall(All_link.HOME_DATA_URL + "/"+params[0]+"/"+ icount,
ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
news = jsonObj.getJSONArray(All_link.TAG_NEWS);
err = jsonObj.getString(All_link.TAG_ERROR);
String more = jsonObj.getString(All_link.TAG_MORE);
Log.e("------>Error",String.valueOf(err));
Log.e("------>More",String.valueOf(more));
if(more.equals("0")){
load_more = 0;
}else{
load_more = 1;
}
// looping through All Contacts
for (int i = 0; i < news.length(); i++) {
//karthik
JSONObject segments_list = news.getJSONObject(i);
for (int plates_count = 0; plates_count < segments_list
.length(); plates_count++) {
String plates = "";
if (plates_count == 3) {
plates = String.valueOf("banner_image");
JSONObject segments_plates = segments_list
.getJSONObject(plates);
//String flag = "banner_image";
String id = segments_plates
.getString(All_link.TAG_BANNER_ID);
String banner_no = segments_plates
.getString(All_link.TAG_BANNER_NO);
String banner_image;
if(segments_plates.getString(All_link.TAG_BANNER_THUMB_URL)==""){
banner_image = All_link.TAG_NO_IMAGE;
}else{
banner_image = segments_plates.getString(All_link.TAG_BANNER_THUMB_URL);
}
String banner_status = segments_plates
.getString(All_link.TAG_BANNER_STATUS);
// tmp hashmap for single news
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_BANNER_ID, id);
news_hashmap.put(All_link.TAG_BANNER_NO,
banner_no);
news_hashmap.put(All_link.TAG_BANNER_THUMB_URL,
banner_image);
news_hashmap.put(All_link.TAG_BANNER_STATUS,
banner_status);
/*news_hashmap
.put(All_link.TAG_BANNER_FLAG, flag);*/
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
addSeparatorItem();
} else {
plates = String.valueOf(plates_count + 1);
JSONObject segments_plates = segments_list
.getJSONObject(plates);
if(segments_plates.getString(All_link.TAG_NEWS_TYPE).equals("2")){
//type_of_news = segments_plates.getString(All_link.TAG_NEWS_TYPE);
addSeparatorItem_for_live();
}
String id = segments_plates.getString(All_link.TAG_ID);
String news_title = segments_plates.getString(All_link.TAG_NEWS_TITLE);
String news_desc = segments_plates.getString(All_link.TAG_DESC);
String segment = segments_plates.getString(All_link.TAG_SEGMENT);
String plate = segments_plates.getString(All_link.TAG_PLATE);
String img ="";
if(segments_plates.getString(All_link.TAG_THUMB_URL).equals("")){
img = All_link.TAG_NO_IMAGE;
}else{
img = segments_plates.getString(All_link.TAG_THUMB_URL);
}
HashMap<String, String> news_hashmap = new HashMap<String, String>();
// adding each child node to HashMap key =>
// value
news_hashmap.put(All_link.TAG_ID, id);
news_hashmap.put(All_link.TAG_NEWS_TITLE, news_title);
news_hashmap.put(All_link.TAG_DESC, news_desc);
news_hashmap.put(All_link.TAG_SEGMENT, segment);
news_hashmap.put(All_link.TAG_PLATE, plate);
news_hashmap.put(All_link.TAG_THUMB_URL, img);
//news_hashmap.put(All_link.TAG_BANNER_FLAG, flag);
// adding contact to contact list
newsList.add(news_hashmap);
//karthik newsList
//Local_newsList.add(news_hashmap);
int val = 0;
int val2 = 1;
val = (Integer.parseInt(segment)%2)==0 ? val:val2;
if((Integer.parseInt(segment)%2)!=0){
Log.e("--->CHECKING ODD EVEN", String.valueOf(val));
addSeparatorItem();
addSeparatorItem_for_alternate();
}
}
}
}
} catch (JSONException e) {
Local_newsList=null;
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
} else {
Log.e("Network Error", "Internet Connection Error");
error_flag = 1;
// error = "Internet Connection Error";
}
return null;
}
#Override
protected void onPostExecute(Void result) {
getActivity().runOnUiThread(new Runnable() {
#Override
public void run() {
// TODO Auto-generated method stub
mAdapter = new MyCustomAdapter(getActivity(), newsList);
mAdapter.notifyDataSetChanged();
refreshable_listView.setAdapter(mAdapter);
refreshable_listView.onRefreshComplete();
}
});
super.onPostExecute(result);
}
MyCustomAdapter.java
private class MyCustomAdapter extends BaseAdapter {
private Activity activity;
Boolean result;
private final LayoutInflater inflater = null;
public ImageLoader imageLoader;
private static final int TYPE_ITEM = 0;
private static final int TYPE_SEPARATOR = 1;
private static final int TYPE_SEPARATOR_ALTERNATE = 2;
private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 3;
private int live_type = 0;
private LayoutInflater mInflater;
public MyCustomAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
mInflater = (LayoutInflater) a.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
activity = a;
newsList=d;
imageLoader = new ImageLoader(activity.getApplicationContext());
}
#Override
public int getItemViewType(int position) {
int separtorValue;
int pos = mSeparatorsSet.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
live_type = mSeparatorsSet_live_layout.contains(position) ? TYPE_SEPARATOR: TYPE_ITEM;
if(pos==1){
//Log.e("--->if called- position->", String.valueOf(position));
if(mSeparatorsSet_alternate_layout.contains(position)){
//Log.e("--->if called-->", String.valueOf(position));
separtorValue = 2;
}else{
separtorValue = 1;
}
}else{
separtorValue = 0;
}
return separtorValue;
}
#Override
public int getViewTypeCount() {
Log.e("--->TYPE_MAX_COUNT called-->", String.valueOf(TYPE_MAX_COUNT));
return TYPE_MAX_COUNT;
}
#Override
public int getCount() {
return newsList.size();
}
#Override
public HashMap<String, String> getItem(int position) {
return newsList.get(position);
}
#Override
public long getItemId(int position) {
return position;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
NewsViewHolder holder = null;
int type = getItemViewType(position);
Log.e("--->SHISHIR-->", String.valueOf(live_type));
/*System.out.println("getView " + position + " " + convertView
+ " type = " + type);
**/
//Log.e("--->SHISHIR-->", String.valueOf(position) + " -->live"+String.valueOf(mSeparatorsSet_live_layout.first()));
if (convertView == null) {
holder = new NewsViewHolder();
//Log.e("--itempostion", String.valueOf(getItem(type)));
switch (type) {
case TYPE_ITEM:
if (CURRENT_THEME==1) {
convertView = mInflater.inflate(
R.layout.theme_one_row_small, null);
}
else{
convertView = mInflater.inflate(
R.layout.theme_one_row_small_new, null);
}
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
imageLoader
.DisplayImage(
com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(
All_link.TAG_THUMB_URL),
holder.img);
break;
case TYPE_SEPARATOR_ALTERNATE:
if (CURRENT_THEME==1) {
convertView = mInflater
.inflate(R.layout.theme_one_row_big, null);
}
else{
convertView = mInflater
.inflate(R.layout.theme_one_row_big_new, null);
}
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.img_flag = (ImageView) convertView.findViewById(R.id.img_live_flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.live = (TextView) convertView.findViewById(R.id.live);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
case TYPE_SEPARATOR:
convertView = mInflater
.inflate(R.layout.theme_banner, null);
holder.flag = (TextView) convertView.findViewById(R.id.flag);
holder.id = (TextView) convertView.findViewById(R.id.fid);
holder.name = (TextView) convertView
.findViewById(R.id.title);
holder.img = (ImageView) convertView
.findViewById(R.id.list_image);
break;
}
convertView.setTag(holder);
} else {
holder = (NewsViewHolder) convertView.getTag();
}
switch (type) {
case TYPE_ITEM:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
break;
case TYPE_SEPARATOR_ALTERNATE:
if(live_type == 1){
holder.img_flag.setVisibility(0);
holder.live.setText("live");
//Log.e("--itempostion Live", "live");
}else{
holder.live.setText("not_live");
holder.img_flag.setVisibility(8);
}
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_ID)));
holder.flag.setText("normal");
Log.e("karthik", "karthik "+com.rb.library.All_link.IMAGE_URI+ newsList.get(position).get(All_link.TAG_THUMB_URL));
break;
case TYPE_SEPARATOR:
Log.e("--banner Images", com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
imageLoader.DisplayImage(com.rb.library.All_link.IMAGE_URI_BANNER
+ newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL),
holder.img);
holder.id.setText(String.valueOf(newsList.get(position).get(
All_link.TAG_BANNER_ID)));
holder.flag.setText(newsList.get(position).get(All_link.TAG_BANNER_THUMB_URL));
break;
}
holder.name.setText(String.valueOf(newsList.get(position).get(All_link.TAG_NEWS_TITLE)));
return convertView;
}
}
My guess is because you call setAdapter everytime you pull to refresh, in onPostExecute :
mAdapter = new MyCustomAdapter(getActivity(), newsList);
mAdapter.notifyDataSetChanged();
refreshable_listView.setAdapter(mAdapter);
refreshable_listView.onRefreshComplete();
Try to move :
mAdapter = new MyCustomAdapter(getActivity(), newsList);
refreshable_listView.setAdapter(mAdapter);
To your onCreateView because you only need to initialize and set the adapter once.
You just need to call those in your onPostExecute, because you called newsList.add in the onBackground :
mAdapter.notifyDataSetChanged();
refreshable_listView.onRefreshComplete();
The above's code will only change the data on your ListView, without re-initializing anything.

How to make a chat app like Facebook?

I'm working on a chat app. I want to create a cool design for my listview. My code is working but I want to add some design similar to the design of Facebook, but I have a problem.
I can't do this: i.e one user has an ID=52 and the other has=5293. If the user has Id=52, the textarea gravity in the left and the other in the right, and here my code it doesn't see my if statement every time print the else statement I don't know why really I put my ID in an array but really this is the same result.
public void LoadMessage() {
// TODO Auto-generated method stub
DatabseHandler d = new DatabseHandler(EchangingMessage.this);
String me = d.getData();
TextView you_id = (TextView) findViewById(R.id.you_id);
String you = you_id.getText().toString().trim();
Log.i("ID :", me + " : " + you);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("me", me));
params.add(new BasicNameValuePair("you", you));
JSONObject json = jParser.makeHttpRequest(url_daftar_rs, "POST",
params);
try {
int success = json.getInt(TAG_SUCCESS);
Log.i("success :", "" + success);
if (success == 1) {
daftar_rs = json.getJSONArray(TAG_DAFTAR_RS);
for (int i = 0; i < daftar_rs.length(); i++) {
JSONObject c = daftar_rs.getJSONObject(i);
String id_rs = c.getString(TAG_ID_RS);
String nama_rs = c.getString(TAG_NAMA_RS);
String link_image_rs = "http://10.0.2.2/www/Android_Login_Secure/Images/upload/big/"
+ c.getString(TAG_LINK_IMAGE_RS);
String message_rs = c.getString(TAG_MESSAGE_RS);
String time_rs = c.getString(TAG_TIME_RS);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_ID_RS, id_rs);
map.put(TAG_NAMA_RS, nama_rs);
map.put(TAG_LINK_IMAGE_RS, link_image_rs);
map.put(TAG_MESSAGE_RS, message_rs);
map.put(TAG_TIME_RS, time_rs);
DaftarRS.add(map);
}
} else {
finish();
}
} catch (Exception e) {
Log.e("Error", "COnnection:" + e.toString());
}
runOnUiThread(new Runnable() {
public void run() {
// updating listview
SetListViewAdapter(DaftarRS);
}
});
}
public class ListAdapterSendMessage extends BaseAdapter {
public String POST_TEXT;
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;
public final static String you_id = null;
int count = 0;
public ListAdapterSendMessage(Activity a,
ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
// TODO Auto-generated method stub
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null) {
vi = inflater.inflate(R.layout.item_list_send, null);
}
HashMap<String, String> daftar_rs = new HashMap<String, String>();
daftar_rs = data.get(position);
String me = daftar_rs.get(MyMessages.TAG_LINK_IMAGE_RS);
if (me == "52") {
vi = inflater.inflate(R.layout.list_row_even, null);
TextView name_rs = (TextView) vi.findViewById(R.id.senderMessage);
TextView Des_rs = (TextView) vi.findViewById(R.id.message);
ImageView thumb_image = (ImageView) vi
.findViewById(R.id.imageSender);
TextView Time_rs = (TextView) vi.findViewById(R.id.senderTime);
name_rs.setText(daftar_rs.get(MyMessages.TAG_NAMA_RS));
// link_image_rs.setText(daftar_rs.get(MainActivity.TAG_LINK_IMAGE_RS));
// alamat_rs.setText(daftar_rs.get(MainActivity.TAG_ALAMAT_RS));
Des_rs.setText(daftar_rs.get(MyMessages.TAG_MESSAGE_RS));
Time_rs.setText(daftar_rs.get(MyMessages.TAG_TIME_RS));
imageLoader.DisplayImage(
daftar_rs.get(MyMessages.TAG_LINK_IMAGE_RS), thumb_image);
} else {
vi = inflater.inflate(R.layout.list_row_odd, null);
TextView name_rs = (TextView) vi.findViewById(R.id.senderMessage);
TextView Des_rs = (TextView) vi.findViewById(R.id.message);
ImageView thumb_image = (ImageView) vi
.findViewById(R.id.imageSender);
TextView Time_rs = (TextView) vi.findViewById(R.id.senderTime);
name_rs.setText(daftar_rs.get(MyMessages.TAG_NAMA_RS));
// link_image_rs.setText(daftar_rs.get(MainActivity.TAG_LINK_IMAGE_RS));
// alamat_rs.setText(daftar_rs.get(MainActivity.TAG_ALAMAT_RS));
Des_rs.setText(daftar_rs.get(MyMessages.TAG_MESSAGE_RS));
Time_rs.setText(daftar_rs.get(MyMessages.TAG_TIME_RS));
imageLoader.DisplayImage(
daftar_rs.get(MyMessages.TAG_LINK_IMAGE_RS), thumb_image);
}
return vi;
}
}
for this question we assume that my id =1 and you id =2
if (id==1) {
inflater.inflate(R.layout.item_list_right, parent, false);
else
{
inflater.inflate(R.layout.item_list_left, parent, false);
}
here you have to different layout one of them item_list_right and the other one is item_list_left
I solved this problem like this

Categories

Resources