有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我想创建一个带有文本视图的计数器

我想创建一个带有文本视图的计数器,并希望每单击15次,在文本视图中更改文本,这就是我为创建计数器而编写的内容。。。。。。。。我有两个文本视图。。。。一个用于单击次数,另一个用于我要显示的文本,,,,,,,,,因此我想使用“如果”将计数器设置为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));
        }
    });
}

共 (6) 个答案

  1. # 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. # 2 楼答案

    我希望你能做到这一点

    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");
                    }
                }
            });
    
    
        }
    }
    
  3. # 3 楼答案

    我不太明白您想要什么,但是如果您想每单击15次就增加计数器,只需在代码中添加if-conditional,如下所示:

        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));
                    }
                }    
            }
        );
    
  4. # 4 楼答案

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

    @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));
            }
        });
    }
    
  5. # 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. # 6 楼答案

    通过这种方式,可以使用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();
        }