1
テーブルレイアウトをリストビューに配置しようとしていますが、正しく表示されないスピナーが1つあります。私はそれが正常に動作するシンプルなテーブルレイアウトでこのコード は、いずれかが私に言うことができますをしようとした場合、私は間違ってリストビューでのTablelLayoutの奇妙な振る舞い
テーブルレイアウトをリストビューに配置しようとしていますが、正しく表示されないスピナーが1つあります。私はそれが正常に動作するシンプルなテーブルレイアウトでこのコード は、いずれかが私に言うことができますをしようとした場合、私は間違ってリストビューでのTablelLayoutの奇妙な振る舞い
つもりどこBaseAdapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final ViewHolder fHolder;
ViewHolder holder ;
View view = null;
if(convertView == null) { // InflateViewHelper class is returning
// object of View class In InflateViewHelper class
//i have written
//View v = inflater.inflate(R.layout.table_layout, null);
InflateViewHelper inflateView = new InflateViewHelper(inflater, aShoppingItem.get(position), mContext);
view = inflateView.createView();
holder = new ViewHolder();
holder.txtUnitPrice = (TextView) view.findViewById(R.id.txtUnitPrice);
holder.txtTotalPrice = (TextView) view.findViewById(R.id.txtTotalPrice);
holder.spinner = (Spinner) view.findViewById(R.id.spinner);
view.setTag(holder);
}
else {
view = convertView;
holder = (ViewHolder)convertView.getTag();
}
fHolder = holder;
holder.spinner.setOnItemSelectedListener(
new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int iposition, long id)
{
value = parent.getItemAtPosition(iposition).toString();
if(pos<totalItems.size())
totalItems.set(pos, value);
else
totalItems.add(pos,value);
int number = Integer.parseInt(value);
int unit = Integer.parseInt(fHolder.txtUnitPrice.getText().toString());
String total = String.format("%d", unit*number);
fHolder.txtTotalPrice.setText(total);
String amnt = fHolder.txtTotalPrice.getText().toString();
Log.v("AMOUNT", amnt);
if(pos< totalAmount.size())
totalAmount.set(pos, amnt);
else
totalAmount.add(pos, amnt);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
totalItems.add(pos, value);
Log.v("[email protected]@@@", value);
}
});
int number = Integer.parseInt(value);
int unit = Integer.parseInt(holder.txtUnitPrice.getText().toString());
String total = String.format("%d", unit*number);
holder.txtTotalPrice.setText(total);
return view;
}
を拡張CustomAdapterのgetViewメソッド()メソッドでテーブルレイアウトを膨らまいます長い間、この問題の解決策が得られました。 この問題を乗り切るために、私は9パッチの画像を使用し、それをスピナーのバックグラウンドとして入れて、よりスリムなスピナーを得ました。私はこの答えをthis link
から得ました