在Custom TextView中注意用户按键

时间:2014-11-01 14:23:58

标签: java android

我是Android新手,我想这样做。在我的textview中收听.

目前我有自己的View类实现MultiAutoCompleteTextView,用于根据需求在用户输入时突出显示文本(颜色)。

使用自定义视图的原因是,我希望视图根据用户输入(即文本)更新其颜色。

所以我的布局xml看起来像这样:

<mypackage.SyntaxEditor
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLength="99999999"
        android:maxLines="5"
        android:scrollbars="vertical"
        >
    </mypackage.SyntaxEditor>

在我的活动课中,我有以下代码:

SyntaxEditor text = v.findViewById(R.id.myText) 

//and few adapters
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_dropdown_item_1line, methods);
text.setAdapter(adapter)
text.setThreshold(2)

现在我有一个要求,例如,当用户按下.时,我需要从adapter更新SyantaxEditor

现在我遇到了这个问题,在SyntaxEditor中,我希望更改adapter中的值数组,是否可以这样做?我是否按照正确的方法解决了这个问题?

或者我的班级设计错了?

提前致谢

1 个答案:

答案 0 :(得分:1)

由于您有一个现有的arrayadapter,您只能修改现有的数据集。 首先将隐式notifydatasetchanged设置为false

adapter.setNotifyOnChange(false);

然后remove数组中的现有元素和add新元素

adapter.clear()
adapter.addAll(newMethods);

您将隐式通知设置为false,因为您不希望视图同时更新(清除并向列表添加元素时)。

你不必担心这里的背景。