我在尝试显示自定义吐司(带有图标和消息)时遇到了一些问题。这是代码。
private void makeToast(String text, int icon) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,(ViewGroup) findViewById(R.id.message));
((TextView) layout.findViewById(R.id.message)).setText(text);
layout = inflater.inflate(R.layout.custom_toast,(ViewGroup) findViewById(R.id.icon));
// 0 - Exclamation, 1 - Noow icon
if(icon == 0){
((ImageView) layout.findViewById(R.id.icon)).setImageResource(R.drawable.exclamation);
}else if(icon == 1){
((ImageView) layout.findViewById(R.id.icon)).setImageResource(R.drawable.nicon);
}
Toast toast = new Toast(getBaseContext());
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
}
我想在第二个参数为0或1时更改图标和消息。我知道问题出在对第二个布局的调用中,但我不知道如何解决。
谢谢。
编辑:
我从 AsyncTask 中的 onPostExecute 调用此方法。我忘了告诉这个。
Thread [<11> AsyncTask #1] (Suspended (exception RuntimeException))
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: not available
ThreadPoolExecutor$Worker.run() line: not available
Thread.run() line: not available
编辑2:
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
makeToast("loading nightclubs...", 1);
}
}
编辑3:
@Override
protected void onPostExecute(List<Category> result) {
Log.i("result", result.toString());
// Cargamos el listado a pasarle a categoryId en la
// consulta
for (int k = 0; k < result.size(); k++) {
ALLOFTHEM += result.get(k).getId();
if (k < result.size() - 1) {
ALLOFTHEM += ",";
}
}
Log.i("POST", ALLOFTHEM);
}
解决了!!!
我用过...
runOnUiThread(new Runnable() {
public void run() {
makeToast("loading nightclubs...", 1);
}
});
...每次我想在 UI 中祝酒,效果很好。
感谢大家。