2014-11-24 34 views
2

我试图创建一个敬酒的价值应该反映一个数字,并应该动态改变,而仍然显示吐司。我不想为价值的每一次变化创造新的敬酒。该值的变化应该反映在现有的烤面包本身。这是否可能,如果是的话,我应该怎么做呢?如何在Toast Notification动态显示中更改文本?

+0

有你在使用某些变量或任何试过吗? – 2014-11-24 05:06:54

+0

http://developer.android.com/guide/topics/ui/notifiers/toasts.html#CustomToastView – John 2014-11-24 05:08:25

+0

@MehulJoisar,我尝试过,但一旦显示吐司,其中的文本在那里不会更新,即使变量的价值得到改变。 – 2014-11-24 05:12:42

回答

8

您可以保存您从makeText获取的Toast实例,并使用setText进行更新。

修订

代码:

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(); 
      } 
     }); 
    } 
} 
+0

啊,谢谢。我会给这个镜头。 – 2014-11-24 05:14:18

+0

似乎它不起作用。每次使用setText时,Toast都会重绘。你可以建议任何其他方式? – 2014-11-24 06:56:02

+0

但什么不工作?要在Toast中显示新文本,应该重绘。 – Bracadabra 2014-11-24 14:46:47