7

我有一个带有 textviews 的屏幕,现在我想点击它使其可编辑

我尝试了一种使用edittext将其设置为透明背景的解决方案,但最初它会显示光标并且点击无法正确识别,如果我在xml中将focusbaleintouchmode设置为false,它不会获得焦点。但有些点击无法按预期正常工作.first 这是正确的方法吗?

预期的结果是,一旦用户点击它,textview 应该在那里,一旦用户点击它外部,它应该是可编辑的,它应该是不可编辑的。任何示例代码都会对我有很大帮助。对不起我的英语

提前致谢

最后,我在 xml 编辑文本中使用以下代码得到了一个解决方案,我将 foucasbletouchmode 设置为 false,这使得 click 在 onclick 之后正常工作

        et.setFocusable(true);
        et.setEnabled(true);

        et.setFocusableInTouchMode(true);
        et.requestFocus();

失去焦点

        et.setFocusable(false);
        et.setClickable(true);
        et.clearFocus();
4

1 回答 1

4

您可以使用以下代码:

private makeEditable(boolean isEditable,EditText et){
    if(isEditable){
        et.setBackgroundDrawable("Give the textbox background here");//You can store it in some variable and use it over here while making non editable.
        et.setFocusable(true);
        et.setEnabled(true);
        et.setClickable(true);
        et.setFocusableInTouchMode(true);
        et.setKeyListener("Set edit text key listener here"); //You can store it in some variable and use it over here while making non editable.
    }else{
        et.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
        et.setFocusable(false);
        et.setClickable(false);
        et.setFocusableInTouchMode(false);
        et.setEnabled(false);
        et.setKeyListener(null);
    }
}
于 2012-11-16T06:23:24.857 回答