gpt4 book ai didi

android - EditText选择 anchor

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:32 26 4
gpt4 key购买 nike

我有一个 ListView ,其中每一行都是一个带有一些文本的 EditText。当我点击一行时,EditText 获得焦点,显示闪烁的光标和选择 anchor (您知道可以四处拖动以选择文本范围的蓝色/灰色 handle )。

问题 是,当我从一行移动到另一行(edittext 到另一行)时,没有输入新文本,前一个 edittext 中的选择 anchor 仍然可见一段时间。如果编辑文本没有焦点,我想立即隐藏这个 anchor 。

有什么想法吗?

ClearFocus 不起作用

        editText.setOnFocusChangeListener(new OnFocusChangeListener() {             
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {

} else {
editText.clearFocus();
//editText.clearComposingText();
}
}
});

截图

The Problem

最佳答案

我终于明白了!首先,我从 ListView 中删除了可聚焦性。然后我编写了一个自定义 OnFocusChangeListener,它从失去焦点的 View 中删除了选择。此监听器通过自定义适配器应用于 View (我包装了 ArrayAdapter,但您也可以包装 SimpleCursorAdapter)。

附件是一个demo(用Eclair在模拟器上测试过):

public class ListOfEditViews extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

ListView list = new ListView(this);
list.setAdapter(getAdapter());
list.setFocusable(false);
list.setFocusableInTouchMode(false);

setContentView(list);
}

private ListAdapter getAdapter() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.edit_text, R.id.text) {

@Override
public View getView (int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.setOnFocusChangeListener(listener);
return view;
}
};

String words = "Lorem ipsum dolor sit amen";

for (String word: words.split(" "))
adapter.add(word);

return adapter;
}

private OnFocusChangeListener listener = new OnFocusChangeListener() {

public void onFocusChange(View view, boolean hasFocus) {
view.dispatchWindowFocusChanged(hasFocus);
}
};
}

关于android - EditText选择 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com