【发布时间】:2017-01-22 10:54:00
【问题描述】:
我试图在 for 循环之前显示一个 toast,但是,toast 没有显示。我也尝试添加一个小吃店,但这也不起作用。我想知道为什么吐司不先开火。我什至尝试了以下方法,但它一直在循环:
Toast toast = Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT);
while (!toast.getView().isShown()) {
toast.show();
}
如何在 for 循环之前显示 toast?
ArrayList<String> pizzaBases = new ArrayList<> ();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
main.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT);
Snackbar.make(findViewById(android.R.id.content), "Had a snack at Snackbar", Snackbar.LENGTH_LONG).show();
}
});
SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);
for (int i = 0; i < 100; i++) {
try {
String pizza = preferences.getString("TypeOfBase" + i, "");
if (!pizza.equals("")) {
pizzaBases.add(pizza);
}
} catch (NullPointerException e) {
//Do nothing here
}
}
}
});
Button button1 = (Button) findViewById(R.id.buttonOne);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (String myString : pizzaBases) {
System.out.println(myString);
}
}
});
}
我尝试了诸如 runOnUiThread、asynctask 和 while 循环之类的解决方案,但它们都没有显示 toast 或snackbar。
编辑:
我发现 UI 仅在 for 循环完成后更新。我想知道为什么它会这样做,虽然它是先激活的。
【问题讨论】:
标签: java android loops for-loop android-toast