在Android的EditText上强制使用FullScreen

时间:2012-12-26 06:47:40

标签: android android-edittext fullscreen mode

我目前正在使用三星Galaxy Tab 2作为我的设备开发应用程序。

XML中的我的代码是:

<EditText
    android:id="@+id/analysis_text"
    style="@style/icon_text"
    android:imeOptions="actionDone"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked"
/>

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

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

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

2 个答案:

答案 0 :(得分:7)

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

解决方法是我设计了一个文本编辑器(看起来类似于全屏用户界面),然后点击每个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/

答案 1 :(得分:0)

你可以尝试这个

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                yourEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            }
        }
    });

导入父布局的LayoutParams。你的答案也会很好。