Monday, November 24, 2014

Customize Toast to show longer duration

This example show how to customize Toast to show longer duration, by using CountDownTimer to call toast.show() repeatly. And also show how to make the toast counting.


package com.example.androidtoastduration;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.os.Bundle;
import android.os.CountDownTimer;


public class MainActivity extends ActionBarActivity {

Button text1, text2, text3, text4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1 = (Button)findViewById(R.id.text1);
text2 = (Button)findViewById(R.id.text2);
text3 = (Button)findViewById(R.id.text3);
text4 = (Button)findViewById(R.id.text4);

text1.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
Toast.makeText(
MainActivity.this,
"LENGTH_SHORT",
Toast.LENGTH_SHORT).show();
}});

text2.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
Toast toast = Toast.makeText(
MainActivity.this,
"10 second - Not Work!",
Toast.LENGTH_SHORT);
toast.setDuration(10000); //set duration, not work
toast.show();
}});

text3.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
final Toast toast = Toast.makeText(
MainActivity.this,
"10 second",
Toast.LENGTH_SHORT);
toast.show();

new CountDownTimer(10000, 1000)
{
public void onTick(long millisUntilFinished) {
toast.show();
}

public void onFinish() {
toast.cancel();

}
}.start();
}});

text4.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
final Toast toast = Toast.makeText(
MainActivity.this,
"10 second",
Toast.LENGTH_SHORT);
toast.show();

new CountDownTimer(10000, 1000)
{
int count = 10;

public void onTick(long millisUntilFinished) {
toast.show();
count--;
toast.setText(count + " sec");
}

public void onFinish() {
toast.cancel();

}
}.start();
}});
}

}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.androidtoastduration.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="android-coding.blogspot.com" />

<Button
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40dp"
android:textStyle="bold"
android:text="LENGTH_SHORT" />

<Button
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40dp"
android:textStyle="bold"
android:text="10 sec Toast - NOT Work!" />

<Button
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40dp"
android:textStyle="bold"
android:text="10 sec Toast" />

<Button
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40dp"
android:textStyle="bold"
android:text="10 sec counting Toast" />

</LinearLayout>

No comments:

Post a Comment