这里有活动的一部分,在屏幕方向变化:屏幕方向变化后的dialogFragment显然出现没有任何呼叫
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;
}
});
}
Apparentely似乎将出现在DialogFragment里面的对话应该只是后出现该onLongClick在EDITTEXT (我知道,当屏幕方向更改活动重新启动,但它不应该像创建的第一次正常启动?)
我的问题: 当我打开至少一次对话框,我在之后关闭它e屏幕方向更改我在屏幕上再次显示对话框,就像我长按EditText一样。
我不知道为什么会发生这种情况。
我也重视对话片段的结构:
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;
}
感谢这么多的帮助。
所以,你开始的活动,什么也不做,旋转设备,并出现对话框,或者你开始actitity,点击EditText上,旋转设备... ? – nikis
您确定您的活动正在重新启动吗?你是否添加了可能阻止活动重新启动的代码?像清单中的配置更改? –
@nikis不,对不起,如果我在打开对话框之前旋转屏幕,什么都不会发生。 – Gasta87