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