我已经创建了一个ListView,它由查询返回的数据填充.
它有效,但在LogCat中我收到了消息:
Cursor Window: Window is full: requested allocation 444 bytes, free space 363 bytes, window size 2097152 bytes
Run Code Online (Sandbox Code Playgroud)
它使用几分钟来加载/可视化ListView.
我的查询返回大约3700行String/Int/Double,每行包含30列; 没有图像或特定数据类型
这条消息究竟意味着什么,我该如何避免呢?
您可以通过更改此光标窗口来提高性能吗?
我有一个带有EditText的活动(名为"filtro")和一个ListView(名为"list_view").当用户插入文本时,应该刷新适配器; 如果我多次更改文本,则会出现崩溃,然后显示消息"确保未从后台线程修改适配器的内容,但只能从UI线程修改"
听众:
filtro.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
Log.d(TAG, "onTextChanged(" + cs + ")");
adapter.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
适配器:
公共类ArticoliAdapter扩展BaseAdapter实现Filterable {[...]
@Override
public View getView(int position, View convertView, ViewGroup parent) {
[...]
}
@Override
public Filter getFilter() {
if(mFilter == null)
mFilter = new CustomFilter();
return mFilter;
}
private class …Run Code Online (Sandbox Code Playgroud) 我是 Python 和 PySimpleGUI 的新手,我不知道如何强制我的应用程序处理事件<Enter>键;这是我的代码:
# Text field
sg.InputText(
key=key,
default_text='',
enable_events=True,
),
...
window = self.graphic_interface.window
while self.is_running:
self.event, self.values = window.read(timeout=0)
...
if event in INSERT_SN_KEYS:
key = event
if values[key]is not None:
# Accept only numbers
if values[key][-1] not in '0123456789':
window[key].update(values[key][:-1])
Run Code Online (Sandbox Code Playgroud)
我的代码可以处理用户按下的任何键,除了<Enter>; 我还没有找到任何类似于 Button 类中使用的“bind_return_key=True”的 InputText 参数。
我该怎么做?