0
私はeditextを持っています。テキストを入力して戻るボタンをクリックすると、変更を破棄するかどうかを尋ねるダイアログが表示されますが、アクティビティの作成時にキーパッドを表示したかったので、AlertDialogの奇妙な動作
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
は今、私はAlertDialogはあなたが表示されない変更を破棄するかどうかと言って、私のEditTextに変更を加えることの断片の私のoncreateview内の行を次のよう?
私は私のonCreateViewそれはAlertDialogを示してから、ラインに
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
を削除した場合。
public class EditorFragment extends Fragment implements android.support.v4.app.LoaderManager.LoaderCallbacks<Cursor>, EditorActivity.OnBackPressedListener {
private EditText TaskName, DueDate, DueTime;
private boolean taskChanged = false;
private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
taskChanged = true;
return false;
}
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_editor, container, false);
TaskName = (EditText) view.findViewById(R.id.tasknameedittext);
DueDate = (EditText) view.findViewById(R.id.duedateedittext);
DueTime = (EditText) view.findViewById(R.id.duetimeedittext);
TaskName.setOnTouchListener(onTouchListener);
DueDate.setOnTouchListener(onTouchListener);
DueTime.setOnTouchListener(onTouchListener);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
getActivity().getMenuInflater().inflate(R.menu.menu_editor, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.editoractivitydelete:
showDeleteConfirmationDialog();
return true;
case R.id.editoractivitysave:
saveTask();
return true;
case android.R.id.home:
//up button code
if (!taskChanged) {
NavUtils.navigateUpFromSameTask(getActivity());
return true;
}
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
NavUtils.navigateUpFromSameTask(getActivity());
}
};
showUnsavedChangesDialog(onClickListener);
return true;
}
return super.onOptionsItemSelected(item);
}
private void showUnsavedChangesDialog(DialogInterface.OnClickListener onClickListener) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.discardchanges);
builder.setPositiveButton(R.string.yes, onClickListener);
builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (dialog != null) {
dialog.dismiss();
}
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
((EditorActivity) getActivity()).setOnBackPressedListener(this);
}
//Back Button code
@Override
public void doBack() {
if (!taskChanged) {
NavUtils.navigateUpFromSameTask(getActivity());
return;
}
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
NavUtils.navigateUpFromSameTask(getActivity());
}
};
showUnsavedChangesDialog(onClickListener);
}
}
私は、ユーザーがのEditTextの状態を変更したかnot.Belowは、あなたが投稿してくださいでしコード – Pritish
であるかどうかを確認するためにブール変数を使用して同じことを行っていますあなたのコード。あなたの最初の投稿にコメントするのに十分なカルマがありませんでした。 – Stuckzilla
私は上記のコードを投稿しました – Pritish