2014-03-06 62 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));