0

ListViewAdapterとバインドするリストアイテムとして編集テキストを含む1つのListViewがあります。EditTextに検証を入れたい。ユーザーがEdittextに「85」と入力すると、自動的に「0085」に設定されます。つまり、ユーザーが4文字未満を入力すると、プレフィックスとして自動的に0が追加され、4文字が設定されます。私を助けてください..

4

1 に答える 1

0

私は自分のプロジェクトの1つでこの種のことをしました。私はあなたの答えに従ってコードを修正し、ここに置きました。やってみて。

AdapterFile(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 に答える