2016-02-29 55 views
0

我已經使用從數據庫填充的列表適配器創建了一個報價應用程序。它有一個加載更多的按鈕與15項門檻。它沒有顯示報價大小是否低於15,但它顯示如果列表是15,當我們按下加載更多按鈕它崩潰。在Android中加載更多按鈕問題

final Button btnLoadMore=new Button(this); 
      btnLoadMore.setBackgroundColor(Color.parseColor("#351802")); 
      btnLoadMore.setTextColor(Color.parseColor("#e8d8a7")); 
      btnLoadMore.setTypeface(btnLoadMore.getTypeface(), Typeface.BOLD); 
      btnLoadMore.setText("Load More Status"); 


      if(c.getCount()<15){ 

      } 

      else{ 
       list.addFooterView(btnLoadMore);} 
      list.setAdapter(adapter); 
      anifadein=AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slidedown); 
      list.startAnimation(anifadein); 

      // Click event for single list row 
      list.setOnItemClickListener(new OnItemClickListener() { 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
        map = quotesList.get(position); 

        Intent intent = new Intent(QuotesActivity.this, 
          QuoteDialogActivity.class); 
        int itemPosition  = position; 
        if(startingPoint>=30){ 


         intent.putExtra("Pos", itemPosition+1); 
         intent.putExtra("LstCount", list.getCount()-1); 
        }else{ 
         intent.putExtra("Pos", itemPosition+1); 
         intent.putExtra("LstCount", list.getCount());} 
        intent.putExtra("QuoteId", map.get(KEY_ID)); 
        intent.putExtra("quotesType", quType); 
        intent.putExtra("startFrom", getIntent().getStringExtra("startFrom")); 
        intent.putExtra("Quotes", quotesList); 
      // Log.i("COUNT",""+(itemPosition+1)+"-"+list.getCount()); 
        intent.putExtra("Fav", map.get(KEY_FAVORITE)); 
        startActivity(intent); 
        if (mInterstitial.isLoaded()) { 
         mInterstitial.show(); 
        } 

       } 
      }); 

      btnLoadMore.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View arg0) { 
         if(btnLoadMore.getVisibility()==View.VISIBLE){ 
         Cursor newC = null; 

         if (quType != 0) { 

          switch (quType) { 
          case 1: 


            newC = db.getQuotes(""+startingPoint); 


           break; 
          case 2: 
           newC = db.getFavoriteQuotes(""+startingPoint); 
           //page.setVisibility(View.GONE); 
           break; 
          case 3: 
           newC = db.getAuthorQuotes(getIntent().getStringExtra("AuthorId"),""+startingPoint); 
          // page.setVisibility(View.GONE); 
           break; 
          } 
         } 
         // Starting a new async task 
         if(newC.getCount()<15){ 
          btnLoadMore.setVisibility(View.INVISIBLE); 

         } 
         startingPoint+=15; 
         do{ 
          map = new HashMap<String, String>(); 

          // adding each child node to HashMap key =&gt; value 
          map.put(KEY_ID, newC.getString(newC.getColumnIndex(KEY_ID))); 
          map.put(KEY_TEXT, newC.getString(newC.getColumnIndex(KEY_TEXT))); 
          map.put(KEY_AUTHOR, newC.getString(newC.getColumnIndex(KEY_AUTHOR))); 
          map.put(KEY_PICTURE, newC.getString(newC.getColumnIndex(KEY_PICTURE))); 
          map.put(KEY_PICTURE_SDCARD, String.valueOf(newC.getInt(newC 
            .getColumnIndex(KEY_PICTURE_SDCARD)))); 
          map.put(KEY_WEB_ID, 
            String.valueOf(newC.getInt(newC.getColumnIndex(KEY_WEB_ID)))); 
          //Log.i("web_id",String.valueOf(newC.getInt(newC.getColumnIndex(KEY_ID)))); 
          map.put(KEY_FAVORITE, newC.getString(newC.getColumnIndex(KEY_FAVORITE))); 

          // adding HashList to ArrayList 
          quotesList.add(map); 
          if (mInterstitial.isLoaded()) { 
           mInterstitial.show(); 
          } 

         } while (newC.moveToNext()); 
         adapter.notifyDataSetChanged(); }} 
       }); 
     } 
    } 

登錄貓是這裏

02-29 16:39:50.553: E/AndroidRuntime(22325): FATAL EXCEPTION: main 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): Process: com.karopass.hindi_suvichar, PID: 22325 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.database.AbstractCursor.checkPosition(AbstractCursor.java:426) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at com.karopass.hindi_suvichar.QuotesActivity$2.onClick(QuotesActivity.java:242) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.view.View.performClick(View.java:5076) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.view.View$PerformClick.run(View.java:20279) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.os.Handler.handleCallback(Handler.java:739) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.os.Handler.dispatchMessage(Handler.java:95) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.os.Looper.loop(Looper.java:135) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at android.app.ActivityThread.main(ActivityThread.java:5930) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at java.lang.reflect.Method.invoke(Native Method) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at java.lang.reflect.Method.invoke(Method.java:372) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) 
 
02-29 16:39:50.553: E/AndroidRuntime(22325): \t at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)

感謝

+0

你可以發佈崩潰的logcat嗎? – Chol

回答

0

<=這意味着小於或等於IE瀏覽器if(c.getCount()<=15){

或者你湊ld做(沒有別的條款)。

if(c.getCount() > 15({ 
    btnLoadMore.setVisibility(View.VISIBLE); 
    ........ your code that is currently in the else clause.. 
} else { 
    btnLoadMore.setVisibility(View.INVISIBLE) 
} 

注意! View.GONE是View.INVISIBLE的替代品。不同的是,INVISIBLE只是使得視圖(按鈕)不能被看到,而GONE使得它如果視圖(按鈕)不在那裏。

+0

嗨!感謝您的建議,但按鈕不會顯示我是否使用了您編寫的代碼 –

+0

修改了回答shor或隱藏依賴於c.getCount()的按鈕。 – MikeT

+0

仍然沒有按鈕顯示:( –