Android edittext onEditorActionListener工作错误?

时间:2016-03-28 03:37:13

标签: android

我有一个带有edittext的列表视图。 EditText在编辑器动作侦听器上设置。它在1日工作正常。但是当我按下键盘上的Done键并且我想编辑listview的前一行时,edittext不会获取新值。 我该如何解决这个问题? Tks家伙^^

holder.zaiko_no.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                String zk = holder.zaiko_no.getText().toString();
                holder.item.setZaikoNo(zk);
                int zaiko_no_length = zk.length();
                int shelf_num_length = holder.shelf_num.getText().toString().length();
                if (position == n - 1) {
                    if (zaiko_no_length > 0 && shelf_num_length > 0) {
                        ShelfActivity.shelfItemList.add(new ShelfItem());
                    }
                }
                if (zaiko_no_length > 0 && shelf_num_length > 0) {
                    holder.status.setText("-");
                    holder.item.setStatus("-");
                    if(position == ShelfActivity.shelfItemList.size()-2){
                        sendBtn.setEnabled(true);
                    }
                } else {
                    holder.status.setText("");
                }
                notifyDataSetChanged();
                if(sendCheck()) sendBtn.setEnabled(true);
                else sendBtn.setEnabled(false);
                return true;
            }
        });

1 个答案:

答案 0 :(得分:0)

每次创建视图时,编辑文本都会丢失其数据。因此,您必须将数据保存在某个数组中。因此,创建一个大小等于行数的String []数组。

初始化String数组以保存数据 - String [] zaiko_no = new String()[list.size()];

在setOnEditorActionListener中 - zaiko_no [position] = holder.zaiko_no.getText()。toString();

听众之外 -  zaiko_no.setText(zaiko_no [位置]);

希望这有帮助。