在Android的EditText上强制使用FullScreen

skv*_*skv 11 android mode fullscreen android-edittext

我目前正在开发一款带有三星Galaxy Tab 2的应用程序作为我的设备.

我在XML中的代码是:

<EditText
    android:id="@+id/analysis_text"
    style="@style/icon_text"
    android:imeOptions="actionDone"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked"
/>
Run Code Online (Sandbox Code Playgroud)

执行此代码时,仅在某些情况下会自动触发全屏数据输入模式(提取模式).

我希望我的用户在编辑此控件中的文本时获得完整的数据输入屏幕,无论屏幕或控件的位置如何.

这个问题的另一个改述:无论内容是什么,如何在我的活动中强制使用EditText框的全屏数据输入模式?

skv*_*skv 7

我解决了这个问题,并未真正解决,但找到了有效的解决方法.

解决方法是我设计了一个文本编辑器(看起来类似于全屏用户界面),并且点击其中的每个EditBox用户界面都会触发新的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());
} 
Run Code Online (Sandbox Code Playgroud)

XML代码:

<EditText
    android:id="@+id/observation_text"
    style="@style/icon_text"
    android:focusable="false"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked" >
</EditText>
Run Code Online (Sandbox Code Playgroud)

要创建我使用代码的全屏UI,你可以使用任何类似的(http://android-richtexteditor.googlecode.com/)

  • 这是一个绝妙的主意,我处于完全相同的情况,我决定跟随你的脚步:)干杯 (2认同)