0

showText()メソッドで乾杯しました。このメソッドを呼び出すと、このメソッドはトーストを表示します。2番目のアクティビティにはボタンがあり、ボタンをクリックするとトーストが表示されます。すべてがうまく機能しますが、2回または数回クリックすると、トーストが長時間表示されます。ボタンをクリックしたときだけトーストしたいのですが、もう一度クリックすると、最初のトーストが消えてまた表示されます。

public void showText(String msg) {

        Toast.makeText(this, msg, 1000).show();

}

どうすればこれを行うことができますか?

4

2 に答える 2

3

show()を呼び出す代わりに、作成したToastへの参照を保持できます

Toast toast = Toast.makeText(this, msg, 1000);
then toast.show();
and then later, call some methods on the toast like toast.cancel();

http://developer.android.com/reference/android/widget/Toast.html

于 2012-04-24T07:12:56.993 に答える
1

あなたはこのようにすることができます

class YourActivity extends Activity implements OnclickListener
{

Toast toast = null;

void onclick(View v)
{
//call showText() method
}

// modify your showText as follows
public void showText(String msg) {

  if(toast != null)
   {
    toast.cancel();
    toast = null;
   }
   toast = new Toast(YourActivity.this);
   toast.setText(msg);
   toast.show()

}


}
于 2012-04-24T07:22:16.830 に答える