gpt4 book ai didi

android - 屏幕方向更改后,dialogFragment 显然没有任何调用出现

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:42 25 4
gpt4 key购买 nike

这里有一部分 Activity 的屏幕方向发生了变化:

protected void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et = (EditText) findViewById(R.id.editText1);

et.setOnLongClickListener(new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
Fragment1 dialogFragment = new Fragment1();
dialogFragment.show(getFragmentManager(), null);
dialogFragment.setTextDialog(et.getText().toString());
return true;
}
});
}

显然,将出现在 DialogFragment 中的对话框似乎应该出现在 onLongClick 之后的 editText 上(我知道当屏幕方向改变时,Activity 会重新启动,但它不应该像第一次创建时那样正常启动?)

我的问题:当我至少打开一次对话框并关闭它时,在屏幕方向更改后,我再次在屏幕上显示对话框,就像我长按编辑文本一样。

我完全不知道为什么会这样。

我还附上对话 fragment 的结构:

public Dialog onCreateDialog(Bundle savedInstanceState) 
{
final Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater adbInflater = LayoutInflater.from(getActivity());

View eulaLayout = adbInflater.inflate(R.layout.dialog_crypt, null);
Button btn_OK = (Button) eulaLayout.findViewById(R.id.btnOK);
dialog.setContentView(eulaLayout);

final EditText et = (EditText)eulaLayout.findViewById(R.id.editText2);
et.setText(textDialog);

if(et.length()>0)
{
et.setText(et.getText().toString() + " ");
}

et.setSelection(et.length());

btn_OK.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v)
{
textDialog = et.getText().toString();
((Main)getActivity()).setTextOnEditText(textDialog);
dialog.dismiss();
}
});
return dialog;
}

非常感谢您的帮助。

最佳答案

尝试使用 fragment 管理器从堆栈中移除对话框,而不是直接关闭它。

getFragmentManager().beginTransaction().remove(dialogFragment.this).commit();

顺便说一句,您应该使用DialogFragment 本身,而不是仅仅为您的对话框使用Fragment。结帐:DialogFragment

此外,永远不要像这样调用您的 Activity 方法 ( ((Main)getActivity()).setTextOnEditText(textDialog);
除非你的 fragment 是一个静态内部类。相反,创建一个 interface 来在 fragment 和 Activity 之间进行对话。

关于android - 屏幕方向更改后,dialogFragment 显然没有任何调用出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21864610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com