我目前正在开发与三星Galaxy Tab 2的应用程序为我的设备。
我在XML代码:
<EditText
android:id="@+id/analysis_text"
style="@style/icon_text"
android:imeOptions="actionDone"
android:inputType="textMultiLine"
android:onClick="onBtnClicked"
/>
当此代码执行时,全屏数据输入模式(摘录模式)仅在某些情况下自动触发。
我想我的用户得到一个完整的数据输入屏幕,而在此控件编辑文本,不管控制的屏幕或定位。
这个问题的另一种改写:如何强制进行的EditText框全屏数据输入模式在我的活动不管内容是什么?
我解决了这个问题,没有真正解决,但找到有效的变通。
解决方法是,我设计了一个文本编辑器(它看起来类似于全屏UI),并在其中的每台的点击EditBox
ES的新UI活动triggerred(与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>
要创建我使用的代码全屏UI,你可以使用任何类似( http://android-richtexteditor.googlecode.com/ )
你可以试试这个
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。 你的回答也将工作做好。