私はこの問題を解決しましたが、実際には解決していませんが、有効な回避策を見つけました。
回避策は、テキストエディタ(フルスクリーンUIに似ています)を設計し、それらの各EditBox
esをクリックすると、新しいUIアクティビティがトリガーされます(startActivityForResult()
完了すると、制御が呼び出し元のアクティビティに戻されます)編集が完了すると、テキストはメイン画面に戻されます。
また、コントロールを転送するボックスがフォーカスされないようにして、コントロールを新しいUIにすぐに転送するようにしました。
このようにして、キャンセルボタンを実装することができました。これにより、ユーザーは誤って行った変更を保存せずに実際に戻ることができます。
私は新しいアイデアを受け入れていますが、これは私にとってはうまくいきました。
のコード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>
私がコードを使用したフルスクリーンUIを作成するには、次のようなものを使用できます(http://android-richtexteditor.googlecode.com/)