2014-03-06 58 views
0

我試圖添加取決於計數器的按鈕數量。我有增加計數器的按鈕。問題是它顯示奇怪的點擊按鈕。它甚至沒有出現在點擊中。例如,當我點擊第一個,它顯示一個按鈕。我再次點擊,沒有按鈕出現。第三次顯示三個按鈕等等。任何人都可以請告訴我可能是什麼問題。我張貼增量代碼和顯示代碼的按鈕。動態添加到LinearLayout時不顯示按鈕

<code> 
    animalsEasyLayout = (LinearLayout) findViewById(R.id.animalsEasyLayout); 
    forward.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Log.i("mustang", "Increment"); 
        increment(); 
        showDigitImages(); 
       } 
      }); 


      backward.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Log.i("mustang", "Decrement"); 
        decrement(); 
        showDigitImages(); 
       } 
      }); 
     } 

     private void increment() 
     { 
      counter++; 
      digitView.setText("" + counter); 

      if(counter >= 10) 
      { 
       forward.setEnabled(false); 
      } 
      else 
      { 
       forward.setEnabled(true); 
      } 
     } 

     private void showDigitImages() 
     { 
      Log.i("mustang", "Show images for counter: " + counter); 
      animalsEasyLayout.removeAllViews(); 


      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT); 


      for(int count = 0; count < counter; count++) 
      { 

       final Button b = new Button(this); 
       b.setId(count + 1); 
       b.setLayoutParams(layoutParams); 
       b.setText("Child: " + (++count)); 

       animalsEasyLayout.addView(b); 
      } 
     } 

     private void decrement() 
     { 
      counter--; 
      digitView.setText("" + counter); 

      if(counter <= 0) 
      { 
       backward.setEnabled(false); 
      } 
      else 
      { 
       backward.setEnabled(true); 
      } 

     } 

</code> 
+0

只是爲了好奇,爲什麼你刪除並重新添加的所有意見。爲什麼不在點擊中添加一個視圖? –

回答

0

您遞增count兩次 - 一次是在for聲明,一旦循環中,而你打電話setText

 for(int count = 0; count < counter; count++) 
     { 

      final Button b = new Button(this); 
      b.setId(count + 1); 
      b.setLayoutParams(layoutParams); 
      b.setText("Child: " + (++count)); 

      animalsEasyLayout.addView(b); 
     } 

使用

b.setText("Child: "+ (count + 1));