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