我的问题是: 是否可以从已禁用的editText启用复制文本功能?
我已尝试使用以下代码测试Android 4.4.2(三星Galaxy Note II)上的行为
EditText _edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment_test);
_edit = (EditText) findViewById(R.id.editDisabled);
_edit.setText("Text to be copied...");
_edit.setEnabled(false);
/* update code with answer below */
_edit.setInputType(InputType.TYPE_NULL);
_edit.setTextIsSelectable(true);
/* end mod */
Toast.makeText(getApplicationContext(), "onClick enabled: " + (_edit.isClickable() ? true : false) +
" \n onLongClick enabled: " + (_edit.isLongClickable() ? true : false) , Toast.LENGTH_LONG).show();
_edit.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View paramView) {
Toast.makeText(getApplicationContext(), "onLongClick()!!!", Toast.LENGTH_LONG).show();
return false;
}
});
_edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramView) {
Toast.makeText(getApplicationContext(), "onclick()!!", Toast.LENGTH_LONG).show();
}
});
}
当活动打开时,toast()和onLongClick()事件的Toast显示true / true。 但是,如果我尝试单击或长按已禁用的editText,则不会触发任何一个事件..
那么有人能够回答我的问题或解释禁用的editText的奇怪行为吗?
提前谢谢
答案 0 :(得分:2)
这并不奇怪。禁用视图意味着禁止用户交互,无论视图是否(长)可点击。
您可以按Paul Chernenko接听,禁用输入并保留文字可选。用户交互也是可能的(点击和长按)。
在您的情况下,我假设您在EditText的禁用状态中唯一缺少的是外观为禁用。这可以通过自定义EditText Style来实现,这将是另一个问题。
答案 1 :(得分:1)
尝试添加到xml
android:inputType="none"
android:textIsSelectable="true"
不要禁用EditText