覆蓋我的getview方法時,我不斷收到錯誤。這是我有:覆蓋getView()的問題()
公共類UnwatchedEpisodesActivity擴展ListActivity {
private String[] values = new String[]{"Row 1", "Row 2", "Row 3"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.episode_main);
setListAdapter(new EpisodeListAdapter());
}
private class EpisodeListAdapter extends ArrayAdapter<String>{
private LayoutInflater li = LayoutInflater.from(this.getContext());
public EpisodeListAdapter(){
super(UnwatchedEpisodesActivity.this, 0, values);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = li.inflate(R.layout.episode_row, parent, false);
}
((TextView) convertView.findViewById(R.id.text1)).setText(values[position]);
return convertView;
}
}
和我的XML是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/ep_layout"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:id="@android:id/text1" />
</LinearLayout>
(我也試過沒有的LinearLayout,這都沒有區別) 我得到this error.
你們有什麼想法嗎?
另外一個問題: 如果我想分開組中的值,該怎麼辦?我想要一個列表來顯示類似於:
-----------
first part
-----------
Row 1
Row 2
-----------
second part
-----------
Row 3
顯然這只是一個例子;基本上我想知道如何添加這些「分隔符」
getView()是爲陣列的每個位置循環的嗎?如果是這樣,我可以看到這個工作,而且看起來很簡單.. – networkprofile 2011-05-08 15:13:06
是的,getView()循環每個位置,這很容易做到,你可以根據你的需要定製它。一切順利...... :) – 2011-05-08 15:22:05
請注意,儘管此解決方案可應用於平面數據結構,但您需要將標題值插入到劇集列表中,或者您必須能夠確定每個部分的第一集。位置= 0適用於第一個項目,並且在上面的if子句中,它顯示標題而不是第一個iem!對於分層數據結構,ExpandableListView是解決方案。 – rekaszeru 2011-05-09 05:48:47