I am trying to put table layout in list view in that table layout i have one spinner which is not displaying properly it is stretched in width and doesn’t looks good. I am inflating the table layout in the getView() method of CustomAdapter which extends 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("VALUE@@@@", 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;
}
if i try this code in simple table layout it works properly
can any tell me where i am going wrong
After a long time a got the solution for this problem.
To get ride of this problem i have used a 9 patch image and put it as a background of spinner and i get slimmer spinner. I got this answer from this link