Note that there are some explanatory texts on larger screens.

plurals
  1. POThe content of the adapter has changed but ListView did not receive a notification.content adapter is not modified from a background thread
    text
    copied!<p>this error showing in my logcat</p> <pre><code>03-19 12:48:54.527: E/AndroidRuntime(2066): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131165193, class android.widget.ListView) with Adapter(class com.example.recipestutors.ItemListBaseAdapter)] </code></pre> <p>Itemlistadapter.java</p> <pre><code>ublic class ItemListBaseAdapter extends BaseAdapter { private static ArrayList&lt;Recipedetails&gt; itemDetailsrrayList; private Integer[] imgid = { R.drawable.vegeterian, R.drawable.nonveg, R.drawable.pickels, R.drawable.soup, R.drawable.sweets, R.drawable.cakes, R.drawable.icecreams, R.drawable.chinesevegdishes, R.drawable.chinesenonveg, R.drawable.chinesenoodles, R.drawable.chinesesoup, R.drawable.godhumaivegadai, R.drawable.soyamorekoozh, R.drawable.tomatokulambu, R.drawable.tomatoupma, R.drawable.vadanavratrispecial, R.drawable.eggkurma, R.drawable.milagu, R.drawable.rasam, R.drawable.vegetablekootu, R.drawable.avial, R.drawable.kothavarangaicurry, R.drawable.allepeyfishcurry, R.drawable.spicymadraschicken, R.drawable.prawns, R.drawable.keralachickenstew, R.drawable.nilgirichickenkorma, R.drawable.pepperchickencurry, R.drawable.chettiandchicken, R.drawable.prawnmasala, R.drawable.beeffry, R.drawable.crispyfish, R.drawable.amlapickle, R.drawable.avakaipickle, R.drawable.capsicumpickle, R.drawable.lemonpickle, R.drawable.onionpickle, R.drawable.mangopickle, R.drawable.tendermangopickle, R.drawable.tomatopickle, R.drawable.chillipickles, R.drawable.gingerpickle, R.drawable.garlicsoup, R.drawable.mixedvegsoup, R.drawable.chickenmanchowsoup, R.drawable.cleartomatosoup, R.drawable.sweetcornvegetablesoup, R.drawable.prawnandnoodlesoup, R.drawable.beetrootsoup, R.drawable.capsicumsoup, R.drawable.muttonsoup, R.drawable.spinachsoup, R.drawable.vegcurry, R.drawable.mushroommutter, R.drawable.alooparatha, R.drawable.daltadka, R.drawable.aloomethi, R.drawable.rajma, R.drawable.paneerbhujri, R.drawable.alooghobi, R.drawable.aloosabzi, R.drawable.kadhaipaneer, R.drawable.chickenwithbellpeppers, R.drawable.butterchicken, R.drawable.fishkorma, R.drawable.prawnfry, R.drawable.tandoorichicken, R.drawable.maccherjholfish, R.drawable.shamikabab, R.drawable.saagmeat, R.drawable.sindhichickenbiryani, R.drawable.punjabichickencurry, R.drawable.gulabjamun, R.drawable.basundi, R.drawable.peda, R.drawable.badhamhalwa, R.drawable.coconutburfi, R.drawable.kulfi, R.drawable.ladoo, R.drawable.mysorepak, R.drawable.ricekheer, R.drawable.badam, R.drawable.cauliflowersoup, R.drawable.cucumbersoup, R.drawable.tomatosoup, R.drawable.mulligatawnysoup, R.drawable.greenpeassoup, R.drawable.northindianmuttonsoup, R.drawable.chickennoodlesoup, R.drawable.spicybeansoup, R.drawable.eggdropsoup, R.drawable.springvegsoup, R.drawable.mushroomandseitan, R.drawable.tofuwith3spices, R.drawable.creamyvegpie, R.drawable.grilledvegmedley, R.drawable.bakedsquash, R.drawable.africanchickenstew, R.drawable.westafricanchicken, R.drawable.africanyamsoup, R.drawable.chickenchilliroast, R.drawable.chilliblackbeans, R.drawable.williecake, R.drawable.pumpkingingercupcakes, R.drawable.doublelayerpumpkincheesecake, R.drawable.carrotcake, R.drawable.sexcake, R.drawable.chocolatechipicecream, R.drawable.cookieicecream, R.drawable.cinnamonicecream, R.drawable.appleicecream, R.drawable.walnut, R.drawable.chineseaubergins, R.drawable.spicycucumber, R.drawable.chinesemushrooms, R.drawable.chinesegobi, R.drawable.spicytofu, R.drawable.chinesetilchicken, R.drawable.chickenmoongali, R.drawable.sweetsourchicken, R.drawable.cherrychicken, R.drawable.mymasalachicken, R.drawable.coldseasamenoodles, R.drawable.sobanoodles, R.drawable.noodleswithtofu, R.drawable.chinesevegandbeef, R.drawable.noodleswithpepper, R.drawable.jhingasoup, R.drawable.masalachickensoup, R.drawable.cabbagesoup, R.drawable.chinesepumpkinsoup, R.drawable.baconsoup, }; private LayoutInflater l_Inflater; public ItemListBaseAdapter(Context context, ArrayList&lt;Recipedetails&gt; results) { itemDetailsrrayList = results; l_Inflater = LayoutInflater.from(context); } public int getCount() { return itemDetailsrrayList.size(); } public Object getItem(int position) { return itemDetailsrrayList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = l_Inflater.inflate(R.layout.item_details_view, null); holder = new ViewHolder(); holder.txt_itemName = (TextView) convertView.findViewById(R.id.name); holder.txt_itemDescription = (TextView) convertView.findViewById(R.id.itemDescription); holder.itemImage = (ImageView) convertView.findViewById(R.id.photo); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.txt_itemName.setText(itemDetailsrrayList.get(position).getName()); holder.txt_itemDescription.setText(itemDetailsrrayList.get(position).getItemDescription()); holder.itemImage.setImageResource(imgid[itemDetailsrrayList.get(position).getImageNumber() - 1]); return convertView; } public synchronized void refreshAdapter(ArrayList&lt;Recipedetails&gt; items) { itemDetailsrrayList.clear(); itemDetailsrrayList.addAll(items); notifyDataSetChanged(); } static class ViewHolder { TextView txt_itemName; TextView txt_itemDescription; ImageView itemImage; } } </code></pre> <p>soutindian.java</p> <pre><code>public class SouthIndian extends Activity { ItemListBaseAdapter _itemListAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList&lt;Recipedetails&gt; image_details = new ArrayList&lt;Recipedetails&gt;(); _itemListAdapter = new ItemListBaseAdapter(this, image_details); final ListView lv1 = (ListView) findViewById(R.id.listV_main); lv1.setAdapter(_itemListAdapter); lv1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; a, View v, int position, long id) { Object o = lv1.getItemAtPosition(position); Recipedetails obj_itemDetails = (Recipedetails)o; Toast.makeText(SouthIndian.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show(); switch(obj_itemDetails.getImageNumber()) { case 1: Intent newActivity = new Intent(SouthIndian.this, AndroidTabLayoutActivity.class); startActivity(newActivity); break; case 2: Intent new1Activity = new Intent(SouthIndian.this, AndroidTabLayoutActivity1.class); startActivity(new1Activity); break; case 3: Intent new2Activity = new Intent(SouthIndian.this, AndroidTabLayoutActivity2.class); startActivity(new2Activity); break; case 4: Intent new3Activity = new Intent(SouthIndian.this, AndroidTabLayoutActivity3.class); startActivity(new3Activity); break; default: Toast.makeText(SouthIndian.this, "Wrong Input", Toast.LENGTH_LONG).show(); } } }); refreshYourAdapter(GetSearchResults()); } // THIS IS WHAT IT SHOULD LOOK LIKE MORE OR LESS. THIS IS AS MUCH AS I CAN HELP private void refreshYourAdapter(final ArrayList&lt;Recipedetails&gt; newData) { //this is what I meant. The error clearly states you are not updating the adapter on the UI thread runOnUiThread(new Runnable() { public void run() { _itemListAdapter.refreshAdapter(newData); } }); } private ArrayList&lt;Recipedetails&gt; GetSearchResults(){ ArrayList&lt;Recipedetails&gt; results = new ArrayList&lt;Recipedetails&gt;(); Recipedetails item_details = new Recipedetails(); item_details.setName("Vegterian"); item_details.setItemDescription("Recipes made by raw materials"); item_details.setImageNumber(1); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Non-Vegterian"); item_details.setItemDescription("Flesh of sweet animals"); item_details.setImageNumber(2); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Pickels"); item_details.setItemDescription("Touchable dish by Homemade"); item_details.setImageNumber(3); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Soups"); item_details.setItemDescription("Startup for our food"); item_details.setImageNumber(4); results.add(item_details); return results; } } </code></pre> <p>Northindian.java</p> <pre><code>public class NorthIndian extends Activity { ItemListBaseAdapter _itemListAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList&lt;Recipedetails&gt; image_details = new ArrayList&lt;Recipedetails&gt;(); _itemListAdapter = new ItemListBaseAdapter(this, image_details); final ListView lv1 = (ListView) findViewById(R.id.listV_main); lv1.setAdapter(_itemListAdapter); lv1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; a, View v, int position, long id) { Object o = lv1.getItemAtPosition(position); Recipedetails obj_itemDetails = (Recipedetails)o; Toast.makeText(NorthIndian.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show(); switch(obj_itemDetails.getImageNumber()) { case 1: Intent newActivity = new Intent(NorthIndian.this, AndroidTabLayoutActivity4.class); startActivity(newActivity); break; case 2: Intent new1Activity = new Intent(NorthIndian.this, AndroidTabLayoutActivity5.class); startActivity(new1Activity); break; case 5: Intent new2Activity = new Intent(NorthIndian.this, AndroidTabLayoutActivity6.class); startActivity(new2Activity); break; case 4: Intent new3Activity = new Intent(NorthIndian.this, AndroidTabLayoutActivity7.class); startActivity(new3Activity); break; default: Toast.makeText(NorthIndian.this, "Wrong Input", Toast.LENGTH_LONG).show(); } } }); refreshYourAdapter(GetSearchResults()); } private void refreshYourAdapter(final ArrayList&lt;Recipedetails&gt; newData) { //this is what I meant. The error clearly states you are not updating the adapter on the UI thread runOnUiThread(new Runnable() { public void run() { _itemListAdapter.refreshAdapter(newData); } }); } private ArrayList&lt;Recipedetails&gt; GetSearchResults(){ ArrayList&lt;Recipedetails&gt; results = new ArrayList&lt;Recipedetails&gt;(); Recipedetails item_details = new Recipedetails(); item_details.setName("Vegterian"); item_details.setItemDescription("Recipes made by raw materials"); item_details.setImageNumber(1); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Non-Vegterian"); item_details.setItemDescription("Flesh of sweet animals"); item_details.setImageNumber(2); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Sweets"); item_details.setItemDescription("Tasty sweets made from indians"); item_details.setImageNumber(5); results.add(item_details); item_details = new Recipedetails(); item_details.setName("Soups"); item_details.setItemDescription("Startup for our food"); item_details.setImageNumber(4); results.add(item_details); return results; } } </code></pre> <p>after clicking the first time in listview,it will goes to the function,if we come back again clicking the next item in the listview,it shows my application has stopped. <strong>My problem not solved i tried all the ways</strong></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload