滾動當我在Android的初學者....我需要你的幫助。微調復位值在自定義列表視圖與ArrayAdapter
在我的應用我創建使用自定義適配器和自定義行佈局的列表視圖。我成功地這樣做了&我在所有行中添加了一個圖像,textview和一個微調器。在下拉列表中有很多項目(例如從0到9)
但是我的問題是當我選擇下拉菜單並設置一些值時,在滾動列表時,微調框重置爲初始值(這裏是0 )..我爲Spinner使用值爲0到9的字符串。
我能做些什麼來避免這個問題?任何幫助將不勝感激....在此先感謝。
//This is my custom adapter code....
public class MyProductsArrayAdapter extends ArrayAdapter<Products> {
Context context;
int resourceId;
Products data[] = null;
public MyProductsArrayAdapter(Context context, int resourceId,
Products data[]) {
super(context, resourceId, data);
this.context = context;
this.resourceId = resourceId;
this.data = data;
}
static class ProductsItemViewHolder {
ImageView image;
TextView name;
Spinner number;
}
String[] mArray = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",
"8", "9" };
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ProductsItemViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (rowView == null) {
rowView = mInflater.inflate(R.layout.main2, parent, false);
holder = new ProductsItemViewHolder();
holder.image = (ImageView) rowView.findViewById(R.id.item_icon);
holder.name = (TextView) rowView.findViewById(R.id.tvListItemText);
holder.number = (Spinner) rowView.findViewById(R.id.NumberSpinner);
rowView.setTag(holder);
} else {
holder = (ProductsItemViewHolder) rowView.getTag();
}
Products f = data[position];
holder.image.setImageResource(f.itemIcon);
holder.name.setText(f.itemName);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_spinner_item, mArray);
holder.number.setAdapter(adapter);
return rowView;
}
}
//這裏是我的row_layout代碼
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/item_icon"
android:layout_width="40dp"
android:layout_height="40dip"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:gravity="center_vertical"
android:src="@drawable/ic_launcher" >
</ImageView>
<TextView
android:id="@+id/tvListItemText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/item_icon"
android:maxWidth="180dp"
android:maxLines="2"
android:text="Hello testing"
android:textColor="@color/brown"
android:textSize="15dp"
android:typeface="normal" />
<Spinner
android:id="@+id/NumberSpinner"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="0dp" />
</RelativeLayout>
@Sibin:你試過了嗎? – akkilis
我試過你的解決方案。但我在第一行的微調值,第一等的值爲0 ...直到最後一行(我想這是索引)...但是當我改變值並再次滾動它重置它。我認爲我沒有正確地使用你的方法...請舉一些例子。 – sibi
@Sibin:editted my ans – akkilis