Ответ 1
Я решил эту проблему, которая не была решена, но нашла правильную работу.
Обходной путь заключается в том, что я разработал текстовый редактор (который похож на полноэкранный пользовательский интерфейс) и по щелчку каждого из этих EditBox
активируется действие нового пользовательского интерфейса (с помощью startActivityForResult()
, чтобы после их завершения управление возвращается к вызывающей активности), и после завершения редактирования текст передается обратно на главный экран.
Я также обеспечил, чтобы те коробки, которые передали элемент управления, не фокусировались, чтобы сразу передать управление новому пользовательскому интерфейсу.
Таким образом, я смог реализовать кнопку отмены, которая теперь фактически позволяет пользователю вернуться без сохранения изменений, которые он случайно делает.
Я открыт для новых идей, но это сработало для меня.
Код в Activity
:
public void onBtnClicked(View v) {
EditText current_text_box = (EditText) v;
Intent intent = new Intent(ObservationActivity.this,
TexteditorActivity.class);
intent.putExtra("start_text", current_text_box.getText().toString());
intent.putExtra("start_position", current_text_box.getSelectionStart());
startActivityForResult(intent, v.getId());
}
Код в XML:
<EditText
android:id="@+id/observation_text"
style="@style/icon_text"
android:focusable="false"
android:imeOptions="flagNoExtractUi"
android:inputType="textMultiLine"
android:onClick="onBtnClicked" >
</EditText>
Чтобы создать полноэкранный интерфейс, я использовал код, вы можете использовать любой (http://android-richtexteditor.googlecode.com/)