Android 8上的Toast吐司

问题描述 投票:0回答:1

我想要举杯祝酒4次(8秒)。 (Toast.LENGTH_SHORT = 2秒和2 * 4 = 8秒)但它在Android 8上显示仅2秒。在Android 7上没问题。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button work = (Button) findViewById(R.id.button1);
work.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
                for (int s = 0; s < 4; s++) {
            Toast.makeText(getApplicationContext(), "This is my Toast 
message!",
                       Toast.LENGTH_SHORT).show();
                }   
    }

});

    }
for-loop android-toast
1个回答
0
投票

我在Oreo上解决并完美运作。

Handler handler = new Handler();
int s = 0;

public void stop() {
    handler.removeCallbacksAndMessages(null);
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Button work = (Button) findViewById(R.id.button1);
    work.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            handler.postDelayed(new Runnable() {
               @Override
               public void run() {
                   Toast.makeText(getApplicationContext(), "This is my Toast message!",
                           Toast.LENGTH_SHORT).show();  //LENGTH_SHORT is 2000 ms
                   handler.postDelayed(this, 2000);  //so I wait 2000 ms

                   s++;  //How many times you want
                   if ( s == 4) {  //2000x4=8000 ms
                       stop();  //stop the handler
                       s=0;  //do not forget 
                   }    
                }

            }, 0);


        }

    });

}

© www.soinside.com 2019 - 2024. All rights reserved.