[英]How to inflate a layout dialog on another activity?
我目前在SecondActivity.class 。 在我的代碼中,當我backpress 時,我希望對話框出現在我的 MainActivity.class 上。
這是我關於膨脹對話框布局的代碼。
這出現在 SecondActivity.class 而不是我的主要活動上。
View dialog = LayoutInflater.from(this).inflate(R.layout.dialog_fmcg_popup, null);
TextView tvfmcg2 = dialog.findViewById(R.id.tv_fmcg2);
tvfmcg2.setText(message);
swipeDismissDialog = new SwipeDismissDialog.Builder(this)
.setView(dialog)
.setOnSwipeDismissListener(new OnSwipeDismissListener() {
@Override
public void onSwipeDismiss(View view, SwipeDismissDirection direction) {
Preferences.setString(Prefkey.last_qualified_fmcg_voucher_on_remove, message);
}
})
.setFlingVelocity(0)
.setOverlayColor(0)
.build()
.show();
那么你可以使用的是ActivityForResult()
方法。
您需要開始與您正在做的事情略有不同的活動。
startActivityForResult(new Intent(this, SecondActivity.class), 80);
然后在你的SecondActivity.class
你覆蓋onBackPressed()
方法如下
@Override
public void onBackPressed() {
setResult(Activity.RESULT_OK,new Intent());
finish();
}
在你的FirstActivity.class
你必須覆蓋onActivityResult()
方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 80) {
if(resultCode == Activity.RESULT_OK){
View dialog = LayoutInflater.from(this).inflate(R.layout.dialog_fmcg_popup, null);
TextView tvfmcg2 = dialog.findViewById(R.id.tv_fmcg2);
tvfmcg2.setText(message);
swipeDismissDialog = new SwipeDismissDialog.Builder(this)
.setView(dialog)
.setOnSwipeDismissListener(new OnSwipeDismissListener()
{
@Override
public void onSwipeDismiss(View view, SwipeDismissDirection direction)
{
Preferences.setString(Prefkey.last_qualified_fmcg_voucher_on_remove, message);
}
})
.setFlingVelocity(0)
.setOverlayColor(0)
.build()
.show();
}
}
}
嘗試調用方法而不是在MainActivity
onStart
或onResume
中顯示對話框
如果你想在你的 MainActivity 而不是你的 SecondActivity 上顯示它,你必須像這樣啟動 SecondActivity:
startActivityForResult(yourIntent, SECOND_ACTIVITY_KEY)
在 BackPresses 上,您可以像這樣設置結果
Intent intent=Intent()
intent.putExtra("MESSAGE",message)
setResult(2,intent)
然后在 MainActivity 上,您可以監聽結果並調用您的對話框。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
// Check which request we're responding to
if (requestCode == SECOND_ACTIVITY_KEY) {
// Make sure the request was successful
if (resultCode == Activity.RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
// Do something with the contact here (bigger example below)
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.