【问题标题】:i want to create a counter with a text view我想创建一个带有文本视图的计数器
【发布时间】:2017-07-18 05:18:24
【问题描述】:

我想创建一个带有文本视图的计数器,并希望每点击 15 次,更改文本视图中的文本,这就是我为创建计数器所写的内容............我有两个文本视图....一为否。点击次数和另一个用于我要显示的文本 ,,,,,,,,,,, 所以我想使用“if”将计数器设置为 0(计数器是 tvx)并更改文本(tvx2 ) 改为“再点击 15 次”

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tips_2);

    btn = (Button) findViewById(R.id.bt);
    txv = (TextView) findViewById(R.id.tx);
    txv2 = (TextView) findViewById(R.id.tx2);

    btn.setOnClickListener(new View.OnClickListener() 
    {
        public int mCounter;
        public Integer tx;

        @Override
        public void onClick(View v) {
            mCounter++;
            txv.setText(Integer.toString(mCounter));
        }
    });
}

【问题讨论】:

    标签: java android counter


    【解决方案1】:
        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tips_2);
    
        btn = (Button) findViewById(R.id.bt);
        txv = (TextView) findViewById(R.id.tx);
        txv2 = (TextView) findViewById(R.id.tx2);
        public int mCounter=0;
        public Integer tx =15;
    
    
        btn.setOnClickListener(new View.OnClickListener() {
    
    
                                   @Override
                                   public void onClick(View v) {
                                       mCounter++;
                                       if(mCounter==tx){
                                          txv.setText(Integer.toString(mCounter));
                                           //reset the counter after 15 click 
                                           mCounter=0
                                       }
    
                                   }
    
    
    
                               }
    
    
        );
    
    
    }
    

    }

    【讨论】:

      【解决方案2】:

      你可以这样,使用 ValueAnimator

         public void animateText(Integer startValue, Integer endValue) {
              setStartValue(startValue);
              setEndValue(endValue);
      
              ValueAnimator animator = ValueAnimator.ofInt(startValue, endValue);
              animator.setInterpolator(getInterpolator());
              animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                  public void onAnimationUpdate(ValueAnimator animation) {
      
                      String cleanString = animation.getAnimatedValue().toString().replaceAll("[,]", "");
                      BigDecimal parsed = new BigDecimal(cleanString);
                      String formatted = NumberFormat.getNumberInstance(Locale.US).format(parsed);
      
                      tv.setText(formatted);
                  }
              });
      
              animator.setEvaluator(new TypeEvaluator<Integer>() {
                  public Integer evaluate(float fraction, Integer startValue, Integer endValue) {
                      return Math.round(startValue + (endValue - startValue) * fraction);
                  }
              });
      
              animator.setDuration(getDuration());
              animator.start();
          }
      

      【讨论】:

        【解决方案3】:

        你好,如果有帮助,试试这个

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tips_2);
        
            btn = (Button) findViewById(R.id.bt);
            txv = (TextView) findViewById(R.id.tx);
            txv2 = (TextView) findViewById(R.id.tx2);
        
        
            btn.setOnClickListener(new View.OnClickListener() {
                public int mCounter=0;
                //initialize mCounter with 0
                public Integer tx;
        
                @Override
                public void onClick(View v) {
                    if(mCounter==15){
                   //check if  mCounter equals 15
                        txv2.setText(Integer.toString("text to display after 15 click"));
                        //reset  mCounter for another iteration 
                        mCounter=0;
                    }
                    mCounter++;
                   //increment the   mCounter  
                    txv.setText(Integer.toString(mCounter));
                }
            });
        }
        

        【讨论】:

          【解决方案4】:

          我不太明白你想要什么,但如果你想每 15 次点击增加计数器,只需在代码中添加 if 条件,如下所示:

              btn.setOnClickListener(new View.OnClickListener() {
                      public int mCounter;
                      public Integer tx;
          
                      @Override
                      public void onClick(View v) {
                          mCounter++;
                          if(mCounter == 15){
                              tx++;
                              txv.setText(String.valueOf(tx));
                          }
                      }    
                  }
              );
          

          【讨论】:

            【解决方案5】:
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_tips_2);
            
                btn = (Button) findViewById(R.id.bt);
                txv = (TextView) findViewById(R.id.tx);
                txv2 = (TextView) findViewById(R.id.tx2);
            
            
                btn.setOnClickListener(new View.OnClickListener() {
                    public int mCounter;
                    public Integer tx;
            public int mCounter2;
            
                    @Override
                    public void onClick(View v) {
                        mCounter++;
            mCounter2++;
                        txv.setText(""+mCounter);
            if(mCounter2==15){
            txv2.setText(""+mCounter2);
                  mCounter2=0;
            }
            
            
                    }
            
            
            
                }
            
            
                );
            
            
            }
            

            【讨论】:

              【解决方案6】:

              我希望你也能做到这一点

              public class MainActivity extends AppCompatActivity {
                  private Button btn;
                  private TextView txv,txv2;
                  private int contador = 0;
              
              
                  @Override
                  protected void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
              
                      btn = (Button) findViewById(R.id.bt);
                      txv = (TextView) findViewById(R.id.tx);
                      txv2 = (TextView) findViewById(R.id.tx2);
              
                      btn.setOnClickListener(new View.OnClickListener() {
                          @Override
                          public void onClick(View v) {
                                ++contador;
                              if(contador <= 15){
                               txv.setText(String.valueOf(contador));
                              }else{
                                  txv2.setText("your text");
                              }
                          }
                      });
              
              
                  }
              }
              

              【讨论】:

                猜你喜欢
                • 2017-07-12
                • 2020-04-01
                • 2014-05-01
                • 1970-01-01
                • 1970-01-01
                • 2012-10-09
                • 1970-01-01
                • 1970-01-01
                • 2012-02-06
                相关资源
                最近更新 更多