Search code examples
androidlistviewrunnable

Android Listview item Change after 10 seconds automatically?


i have two arraylist one is departurelist and one is arrival list i want to show this list

alternatively means after 10 seconds list is change automatically

first 10 seconds departure list and next 10 second arrival list i will put my code here i will try usint runnable but my apps is hang when run this code

Home activity.java

  final int []sliderImageArray={R.drawable.banner,R.drawable.banner01,R.drawable.banner02};
        final int []footerImageArray={R.drawable.bottomadv,R.drawable.sandwich,R.drawable.underbig};
        try 
        {

            Log.e("Land Scape Run","");
            Log.e("LandScape  Run","Handler ");
                final Handler imagehandler = new Handler();

                Runnable runnable;

                runnable = new Runnable()
                {

                    int i=0;
                    public void run()
                    {   // slider image run
                        imageslider.setImageResource(sliderImageArray[i]);  //Log.e("Image Run",""+sliderImageArray[i]);
                        i++;
                        if(i>sliderImageArray.length-1)
                        {
                                i=0;    
                                clear();
                        }
                        imagehandler.postDelayed(this, 4000); // for interval
                    }

                };
                imagehandler.postDelayed(runnable,10);

                final Handler footerimagehandler =new Handler();
                runnable = new Runnable()
                {   
                    int j=0;
                    public void run()
                    {   // footer image run
                        imagefooter.setImageResource(footerImageArray[j]); //   Log.e("Image Run",""+footerImageArray[j]);
                        j++;
                        if(j>footerImageArray.length-1)
                        {
                                j=0;    
                                clear();
                        }
                        footerimagehandler.postDelayed(this, 5000); // for interval
                    }
                };

                footerimagehandler.postDelayed(runnable, 10);


                // For ListView Change after 10 seconds;
                final Handler listhandler= new Handler();
                runnable = new Runnable() {

                    public void run() {
                        // departure flight list

                                if(!flightList.isEmpty())
                                {
                                        int displaymode=getResources().getConfiguration().orientation;
                                        if(displaymode==1)
                                        {
                                                textviewinfo.setText("Departure Flight List");
                                                ListAdapter adapter = new SimpleAdapter(HomeActivity.this,flightList,
                                                        R.layout.listportrait,
                                                        new String[] { TAG_MDESTINATION, TAG_MFLIGHT, TAG_MAIRLINE,TAG_MSCHEDULE,TAG_MTERMINALGATE,TAG_MFSTATUS  }, new int[] {
                                                                R.id.textdestination, R.id.textflight, R.id.textairline,R.id.textschedule,R.id.texttermgate,R.id.textstatus });
                                                setListAdapter(adapter);

                                        }
                                        else
                                        {
                                               textviewcity.setText(textcity);
                                               textviewairport.setText(textairport);
                                               textviewinfo.setText("Departure Flight List");

                                            ListAdapter adapter = new SimpleAdapter(HomeActivity.this,flightList,
                                                    R.layout.list,
                                                    new String[] { TAG_MDESTINATION, TAG_MFLIGHT, TAG_MAIRLINE,TAG_MSCHEDULE,TAG_MTERMINALGATE,TAG_MFSTATUS  }, new int[] {
                                                            R.id.textdestination, R.id.textflight, R.id.textairline,R.id.textschedule,R.id.texttermgate,R.id.textstatus });
                                            setListAdapter(adapter);

                                        }
                                }listhandler.postDelayed(this,1000);// if loop complete departure
                            // arrival flight list
                                if(!arrivalList.isEmpty())
                                {

                                        int displaymode=getResources().getConfiguration().orientation;
                                        if(displaymode==1)
                                        {
                                            text1.setText("Origin");
                                            text4.setText("Arrival");
                                            textviewinfo.setText("Arrival Flight List");

                                                ListAdapter adapter = new SimpleAdapter(HomeActivity.this,arrivalList,
                                                        R.layout.listportrait,
                                                        new String[] { TAG_MDESTINATION, TAG_MFLIGHT, TAG_MAIRLINE,TAG_MSCHEDULE,TAG_MTERMINALGATE,TAG_MFSTATUS  }, new int[] {
                                                                R.id.textdestination, R.id.textflight, R.id.textairline,R.id.textschedule,R.id.texttermgate,R.id.textstatus });
                                                setListAdapter(adapter);

                                        }
                                        else
                                        {
                                                text1.setText("Origin");
                                                text4.setText("Arrival");
                                                textviewinfo.setText("Arrival Flight List");

                                            ListAdapter adapter = new SimpleAdapter(HomeActivity.this,arrivalList,
                                                    R.layout.list,
                                                    new String[] { TAG_MDESTINATION, TAG_MFLIGHT, TAG_MAIRLINE,TAG_MSCHEDULE,TAG_MTERMINALGATE,TAG_MFSTATUS  }, new int[] {
                                                            R.id.textdestination, R.id.textflight, R.id.textairline,R.id.textschedule,R.id.texttermgate,R.id.textstatus });
                                            setListAdapter(adapter);

                                        }
                                }listhandler.postDelayed(this,100);// if complete arrrival

                    }
                };
                listhandler.postDelayed(runnable, 10);

Solution

  • Handler handler = new Handler();
    
    handler.postDelayed(new Runnable() {
    @Override
    public void run() {
    
    //do anything
    
    
    }
    }, 10000);
    

    this code is almost same. you can try to create a 'recursive call' of both the methods with a delay of 10 seconds