你需要實現你的ListAdapter這種方法被稱爲每次你行觀去,從屏幕外屏幕上,由於時間用戶滾動列表。傳遞給你的getView方法的View可能實際上被用來顯示完全不同行的數據。這是因爲對象被回收 - 如果您有1,000行的數據,但只有8個視圖適合屏幕顯示,則系統會爲您的行創建8個View對象,而不是1,000。
如果你的類實現ListAdapter你可以重寫getView方法如下:
public class MyClass implements ListAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
//Create a view for this row if none exists yet
if (rowView == null) {
LayoutInflater inflater = (LayoutInflater) _context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.YOUR_ROW_LAYOUT, parent, false);
//make the button go away if it should not be visible
if (buttonShouldBeNotVisible(convertView)) { //Your code should determine this
convertView.checkbox.setVisibility(View.INVISIBLE);
//Use View.GONE to make it take up no space
}
return convertView
}}
你有你的解決方案?如果你從答案中得到答案,那麼接受它,否則發佈你的答案。如果你接受答案,這將有助於他人和你的聲望也會增加。 – Ankit 2013-05-01 05:09:36
我會defenitely,但我dint得到一個很好的解決方案可能是所有的答案的作品,但我無法弄清楚哪個打勾... – Saad 2013-05-01 07:22:43