2013-04-15 86 views

回答

0

不像我previous answer我會假設你希望每個TextView中顯示不同的數據,讓我們一個新的成員添加到您的適配器和適當的getter和setter適配器:

private SparseArray<String> secondary = new SparseArray<String>(); 

public String getSecondary(int position) { 
    return secondary.get(position, ""); 
} 
public void setSecondary(int position, String value) { 
    secondary.put(position, value); 
    notifyDataSetChanged(); // Updates the ViewGroup automatically! 
} 

SpareArrays處於更好設置沒有可預測的索引,但是如果你想要不同的東西,你可以使用List,HashMap等。現在調整onListItemClick()使用新的方法:

protected void onListItemClick(ListView l, View v, int position, long id) { 
    String clickedPosition = "Clicked position = " + position; 
    mAdapter.setSecondary(position, clickedPosition); 
} 

最後更新getView()顯示textClickedPosition只有當secondary有數據:

TextView textView = (TextView) view.findViewById(R.id.textPosition); 
textView.setText(event); 

textView = (TextView) view.findViewById(R.id.textClickedPosition); 
String string = getSecondary(position); 
if(!string.isEmpty()) { 
    textView.setText(string); 
    textView.setVisibility(View.VISIBLE); 
} 
else // You must hide the view otherwise you will see odd behavior for the recycle method 
    textView.setVisibility(View.GONE); 

return view; 

關於最後一點,你真的應該看的谷歌I/O講座如Turbo Charge your UI它們包含豐富的知識!

+1

謝謝!其他部分就是我所缺少的:)我觀看了講座的第一部分(我的實現甚至有一個ViewHolder現在),我一定會盡快觀看其餘部分! – Piovezan