0

我有一个带有编辑文本的 ListView 作为与 ListViewAdapter 绑定的列表项。我想对 EditText 进行验证。就像用户在 Edittext 中输入“85”一样,它会自动设置为“0085”。简而言之,如果用户输入少于 4 个字符,它将自动添加 0 作为前缀,并将设置为 4 个字符。请帮我..

4

1 回答 1

0

我在我的一个项目中做过这种事情。我已根据您的回答修改了代码并将其放在这里。试试看。

在您的 AdapterFile(extends BaseAdapter) 中,您可以指定addTextChanged Listener如下

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

final ViewHolder holder;
convertView = inflater.inflate(
                            R.layout.order_listview_detail_row, null);
    holder.txtpromised_quantity = (EditText) convertView
                    .findViewById(R.id.txtpromised_quantity);
    holder.txtpromised_quantity.setTag(position);
}

holder.txtpromised_quantity.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                // TODO Auto-generated method stub
                qtypos = Integer.parseInt(holder.txtpromised_quantity.getTag()
                        .toString());
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub
                qtypos = Integer.parseInt(holder.txtpromised_quantity.getTag()
                        .toString());
            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
                if (holder.txtpromised_quantity.getText().length()==4) {
                    qtypos = Integer.parseInt(holder.txtpromised_quantity
                            .getTag().toString());
                    holder.txtpromised_quantity.setText(holder.txtpromised_quantity.getText().toString());
                } else if (holder.txtpromised_quantity.getText().length()==3) {
                    qtypos = Integer.parseInt(holder.txtpromised_quantity
                            .getTag().toString());
                    holder.txtpromised_quantity.setText("0"+holder.txtpromised_quantity.getText().toString());
                }else if (holder.txtpromised_quantity.getText().length()==2) {
                    qtypos = Integer.parseInt(holder.txtpromised_quantity
                            .getTag().toString());
                    holder.txtpromised_quantity.setText("00"+holder.txtpromised_quantity.getText().toString());
                }else if (holder.txtpromised_quantity.getText().length()==1) {
                    qtypos = Integer.parseInt(holder.txtpromised_quantity
                            .getTag().toString());
                    holder.txtpromised_quantity.setText("000"+holder.txtpromised_quantity.getText().toString());
                }

            }
        });

希望它会帮助你。

于 2012-11-10T07:02:05.627 回答