简体   繁体   中英

i want to create a counter with a text view

i want to create a counter with a text view and want for every 15 click , to change the text in the text view and that is what i have wrote to create the counter ........ i have two text views .... one for the no. of clicks and the another for the text i want to show ,,,,,,,,,,, so i want to use "if" to set the counter to 0 (the counter is tvx) and to change the text (tvx2) to "click 15 more"

@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));
        }
    });
}

you can this way, use the 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();
    }
    @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
                                   }

                               }



                           }


    );


}

}

Hello Try this if it may help

@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));
        }
    });
}

I'm not really understand what do you want, but if you want to increase the counter every 15 click, just add if conditional in your code like this:

    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));
                }
            }    
        }
    );
@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;
}


        }



    }


    );


}

I hope and you serve this

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");
                }
            }
        });


    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM