2016-02-29 3 views
-1

У меня есть ListView, который загружает больше ListItems, когда он достигает 20rh ListItem с помощью OnScroll слушателяIndexoutofbound исключения при добавлении колонтитулов ListView

Я хочу, чтобы добавить колонтитул говоря ЗАГРУЗКУ больше пока больше Элементов списка становится загружены

Когда я достичь 20-го ListItem в приложение аварии, говоря IDEX вне границ в logct

Вот мой код

LogCat

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
неустранимые: Основные 02-29 15: 53: 11,546 23342 23342 Х
AndroidRuntime
java.lang.IndexOutOfBoundsException: недействительный индекс 9, размер 0 02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на java.util.ArrayList.throwIndexOutOfBoundsException (ArrayList.java:251)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
в java .util.ArrayList.get (ArrayList.java:304)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на com.enlightenme.pac.FinalAdapter.getItem (FinalAdapter.java:55)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на com.enlightenme.pac.FinalAdapter.getView (FinalAdapter.java:83)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
at com.baoyz.swipemenulistview.SwipeMenuAdapter.getView (SwipeMenuAdapter.java:65)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.AbsListView.obtainView (AbsListView.java:2588)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.ListView.makeAndAddView (ListView.java:1840)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.ListView.fillDown (ListView.java:681)

02-29 15: 53: 11.546 23342 23342 Е AndroidRuntime
на android.widget.ListView.fillSpecific (ListView.java:1339)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.ListView.layoutChildren (ListView.java : 1639)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.AbsListView.onLayout (AbsListView.java:2427)

02-29 15: 53: 11,546 23342 23342 E AndroidRuntime
на android.view.View.layout (вид.Java: 14938)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.FrameLayout.onLayout (FrameLayout.java:448)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.View.layout (View.java : 14938)

02-29 15: 53: 1 1,546 23342 23342 Е AndroidRuntime
на android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.FrameLayout.onLayout (FrameLayout .java: 448)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.View.layout (View.java:14938)

02-29 15: 53: 11,546 23342 23342 E AndroidRuntime
на android.view.ViewGroup.layout (ViewGroup.java:460 1)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1694)

02-29 15: 53: 11,546 23342 23342 E AndroidRuntime
на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1552)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.LinearLayout.onLayout (LinearLayout.java:1465) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
на android.view.View.layout (View.java:14938)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.widget.FrameLayout.onLayout (FrameLayout.java:448)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.View.layout (View.java:14938) 02-29 15: 53: 11.546 23342 23342 Е AndroidRuntime на android.view.ViewGroup.layout (ViewGroup.java:4601) 02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime на android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2212)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2026)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на андроид .view.ViewRootImpl.doTraversal (ViewRootImpl.Java: 1236)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:5160)

02-29 15:53 : 11,546 23342 23342 Е AndroidRuntime
на android.view.Choreographer $ CallbackRecord.run (Choreographer.java:791) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
в android.view.Choreographer.doCallbacks (Хореограф.java:591)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view.Choreographer.doFrame (Choreographer.java:561) 02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.view .Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:777)

02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на android.os.Handler.handleCallback (Handler.java:725) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
at android.os.Handler.dispatchMessage (Handler.java:92) 02-29 15: 53: 11.546 23342 23342 E AndroidRunt ime
at android.os.Looper.loop (Looper.java:176) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime at android.app.ActivityThread.main (ActivityThread.java:5365) 02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на java.lang.reflect.Method.invokeNative (Родной метод) 02-29 15: 53: 11,546 23342 23342 Е AndroidRuntime
на java.lang.reflect.Method. invoke (Method.java:511) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1102) 02-29 15:53 : 11.546 23342 23342 E AndroidRuntime
на

моя деятельность

public class InterActivity extends Activity 
{ 

SwipeMenuListView listview; 
//ListView listview; 

View mFooterView; 






@Override 
public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.inter_layout); 
    shrdPreference = new SharedPreference(); 


    //Execute RemoteDataTask AsyncTask 

    new RemoteDataTask().execute(); 
} 




private class RemoteDataTask extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 


     mProgressDialog = new ProgressDialog(InterActivity.this); 
     mProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     // Set progressdialog title 
     //mProgressDialog.setTitle("BEGINNER CODES"); 
     // Set progressdialog message 
     mProgressDialog.setMessage("Loading. Please wait loading ...."); 
     mProgressDialog.setIndeterminate(true); 
     mProgressDialog.setCancelable(false); 
     mProgressDialog.setIndeterminateDrawable(getResources().getDrawable(R.anim.progress_handler)); 
     // Show progressdialog 
     mProgressDialog.show(); 

    } 


    @Override 
    protected Void doInBackground(Void... params) { 
     // my do in backgroung process 

    } 

    @Override 
    protected void onPostExecute(Void result) { 
     // Locate the listview in listview_main.xml 
    // listview = (ListView) findViewById(R.id.inter_layoutListView); 

     listview = (SwipeMenuListView) findViewById(R.id.inter_layoutListView); 
     // Pass the results into ListViewAdapter.java 
     adapter = new FinalAdapter(InterActivity.this, 
             codelist); 
     mFooterView = LayoutInflater.from(InterActivity.this).inflate(R.layout.footer_layout, null);       

     // Binds the Adapter to the ListView 
    listview.setAdapter(adapter); 


     // Close the progressdialog 
     mProgressDialog.dismiss(); 

// Установка onscrll слушающего

 listview.setOnScrollListener(new OnScrollListener() { 

       @Override 
       public void onScrollStateChanged(AbsListView view, 
               int scrollState) { // TODO Auto-generated method stub 
        int threshold = 1; 
        int count = listview.getCount(); 

        if (scrollState == SCROLL_STATE_IDLE) { 
         if (listview.getLastVisiblePosition() >= count 
          - threshold) { 
          // Execute LoadMoreDataTask AsyncTask 
          new Loadmore().execute(); 
         } 
        } 
       } 

       @Override 
       public void onScroll(AbsListView view, int firstVisibleItem, 
            int visibleItemCount, int totalItemCount) { 
        // TODO Auto-generated method stub 

       } 

      }); 




    } 
} 





private class Loadmore extends AsyncTask<Void, Void, Void> { 


    @Override 
    protected void onPreExecute() { 

     super.onPreExecute(); 
    listview.addFooterView(mFooterView); 

     } 
    @Override 
    protected Void doInBackground(Void... params) { 
     // my load mmore data process 


    } 

    @Override 
    protected void onPostExecute(Void result) { 
     int position = listview.getLastVisiblePosition(); 



    adapter.notifyDataSetChanged(); 
     listview.removeFooterView(mFooterView); 


listview.setSelectionFromTop(position, 0); 


    } 
} 

    }  
+4

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что вы уже задали этот вопрос 2 часа назад здесь: http://stackoverflow.com/questions/ 35697446/app-crashes-giving-index-out-of-bounds-in-logcat-while-add-footer-to-listview –

+0

@DavidMedenjak, пожалуйста, нет, я боюсь с этим от 2 недель – user5894647

+0

Вы можете предложить щедрость на ваш первый вопрос. Или отредактируйте и улучшите его. Задавать один и тот же вопрос дважды не выгодно –

ответ

1

вы как раз изменения данных в адаптере, это размер меняется к нулю. Посмотрите на Loadmore AsyncTask, вероятно, измените размер адаптера

Смежные вопросы