[英]Show toast in onActivityResult
我試圖在活動返回結果時顯示吐司消息。 但是,我正在使用定制的充氣吐司。 普通吐司工作正常,但是我的自定義吐司不會顯示。 下面的代碼。
主要活動的onCreate()
:
@Override
public void onCreate(Bundle savedInstance){
super.onCreate(savedInstance);
setContentView(R.layout.activity_login);
emailTxt = (TextView)this.findViewById(R.id.email_field);
passwordTxt = (TextView)this.findViewById(R.id.password_field);
wgmService = ((MainApp)this.getApplication()).wegmannAdapter.create(WegmannService.class);
spinner = (ProgressBar)this.findViewById(R.id.progress_bar);
spinner.setVisibility(View.GONE);
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast, (ViewGroup)findViewById(R.id.toast_layout));
toastText = (TextView)layout.findViewById(R.id.toast_text);
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
fadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
fadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out);
}
主要活動的onActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
switch(requestCode) {
case SIGNUP_VIEW:
if(resultCode == RESULT_OK){
toastText.setText(data.getExtras().getString("message"));
toast.show();
}
break;
}
}
有了以上,我看不到吐司消息。 但是,如果我用Toast.makeText(getBaseContext(),"MESSAGE", Toast.LENGTH_LONG).show()
替換onActivityResult中的行Toast.makeText(getBaseContext(),"MESSAGE", Toast.LENGTH_LONG).show()
出現一條消息。 在這種情況下,我需要能夠使用我的自定義吐司。 任何幫助或指導表示贊賞。
您的錯誤非常簡單:您更改了textField toastText的文本,並且不添加要顯示的Toast的文本。
此代碼應工作:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
switch(requestCode) {
case SIGNUP_VIEW:
if(resultCode == RESULT_OK){
toast.setText(data.getExtras().getString("message"));
toast.show();
}
break;
}
}
原來問題出在我其他活動中。 我正在通過以下方式設置我的額外信息:
Intent intent = new Intent();
intent.putExtra("message", R.string.messages_signup_success);
setResult(RESULT_OK, intent);
finish();
但是, R.string.messages_signup_success
返回一個int,當檢索到該int時,它將引發非嚴重警告,並且繼續進行而不會顯示我的吐司但不會崩潰。 將代碼更改為以下代碼可解決此問題:
Intent intent = new Intent();
intent.putExtra("message", getBaseContext().getString(R.string.messages_signup_success));
setResult(RESULT_OK, intent);
finish();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.