gpt4 book ai didi

android - 带编辑文本的 ListView - 在 "next"上自动滚动

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:04 27 4
gpt4 key购买 nike

我有一个 ListView,每行有一个 EditText(除了几个不可编辑的 TextView)。当我在 EditText 中编辑文本时,软键盘上有“下一步”按钮 - 按下它会将焦点移动到下一个字段 - 这很棒。在最后一行,按钮变为“完成”。

我正在使用 EditText.setImeOptions 根据这是否是最后一行将按钮设置为“完成”或“下一步”。

问题是 ListView 可以有更多的行可以适合屏幕。发生这种情况时,在下一个可见行上按“下一步”会将焦点再次移到第一行。我怎样才能让它滚动列表并转到下一行?

作为引用,这是我在我的适配器中所做的:

public class AuditAdapter extends BaseAdapter {
private Context context;
private int layoutResourceId;
private Audit audit;

...

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
final AuditItemHolder holder = (row == null ? new AuditItemHolder() : (AuditItemHolder)row.getTag());

if(row == null)
{
LayoutInflater inflater = ...;
row = inflater.inflate(layoutResourceId, parent, false);
...
holder.qtyf = (EditText)row.findViewById(R.id.item_quantity);
}

AuditItem item = audit.getItemAt(position);

holder.qtyf.setText("" + item.getQuantity());
holder.qtyf.setImeOptions(position == audit.size() - 1 ? EditorInfo.IME_ACTION_DONE : EditorInfo.IME_ACTION_NEXT);

...

row.setTag(holder);
return row;
}

private static class AuditItemHolder {
...
EditText qtyf;
}
}

最佳答案

好的,经过长时间的努力,我终于找到了适合我的情况的 hack(不是正确的解决方案)。在我的适配器的 getView 中,我添加了 onEditorActionListener 并在其中:

ediField.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
ListView lv = (ListView)parent;
if(actionId == EditorInfo.IME_ACTION_NEXT &&
lv != null &&
position >= lv.getLastVisiblePosition() &&
position != audit.size() - 1) { //audit object holds the data for the adapter
lv.smoothScrollToPosition(position + 1);
lv.postDelayed(new Runnable() {
public void run() {
TextView nextField = (TextView)holderf.qtyf.focusSearch(View.FOCUS_DOWN);
if(nextField != null) {
nextField.requestFocus();
}
}
}, 200);
return true;
}
return false;
}
});

关于android - 带编辑文本的 ListView - 在 "next"上自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21935312/

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