How to change text in a Toast Notification dynamically while it's being displayed?

好久不见. 提交于 2019-12-19 03:59:14

问题


I seek to create a toast whose value should reflect a number and should dynamically change while the toast is still displayed. I don't want to create new toasts for every change in the value. The changes to the value should reflect in the existing displayed toast itself. Is this possible, if so, how should I go about it?


回答1:


You can save your instance of Toast which you get from makeText and update it with setText.

UPDATED

Code:

public class MainActivity extends ActionBarActivity {

    private Toast mToast;

    private int count = 0;

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

        findViewById(R.id.toast).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View v) {
                if (mToast == null) {
                    mToast = Toast.makeText(MainActivity.this, "Count " + 0, Toast.LENGTH_LONG);
                }
                mToast.setText("Count " + count++);
                mToast.show();
            }
        });
    }   
}



回答2:


These other answers weren't working for me. Maybe its Oreo. This is what people are looking for. Should work in all cases.

EDIT: It should be clarified that original toast will only show as long as the duration allows it. Once the toast length is finished, you cannot call show() on it without re-instantiation.

    private Toast mToast;
    protected void showToast(int value) {

        if (mToast == null) {
            mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
        } else {
            mToast.cancel();
            mToast = Toast.makeText(context, "", Toast.LENGTH_SHORT);
        }

        mToast.setText("Shutdown in "+value+" seconds");
        mToast.show();
    }


来源:https://stackoverflow.com/questions/27098175/how-to-change-text-in-a-toast-notification-dynamically-while-its-being-displaye

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!