2013-08-05 59 views
0

當我在ListActivity中添加setContentView時,問題就會發生。 這裏是我的OnCreate函數:listadapter getview函數

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    mAdapter = new MyCustomAdapter(); 
    for (int i = 1; i < 10; i++) { 
     mAdapter.addItem("item " + i); 
    } 
    setListAdapter(mAdapter); 
    // setContentView(R.layout.main); 
} 

,這裏是我的適配器getview功能:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder = null; 
     int type = getItemViewType(position); 
     System.out.println("getView " + position + " " + convertView + " type = " + type); 
     if (convertView == null) { 
      holder = new ViewHolder(); 
      switch (type) { 
       case TYPE_ITEM: 
        convertView = mInflater.inflate(R.layout.item1, null); 
        holder.textView = (TextView)convertView.findViewById(R.id.text); 
        break; 
       case TYPE_SEPARATOR: 
        convertView = mInflater.inflate(R.layout.item2, null); 
        holder.textView = (TextView)convertView.findViewById(R.id.textSeparator); 
        break; 
      } 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder)convertView.getTag(); 
     } 
     holder.textView.setText(mData.get(position)); 
     return convertView; 
    } 

} 

當我運行代碼,我可以在logcat中看到消息: enter image description here

這是我預期但是在oncreate()函數中添加SetContent(View)代碼時會出現問題。logcat消息如下所示: enter image description here

問題導致圖片顯示錯誤位置時,首先我想從線程的web下載img並將其綁定到listItem上。第一個項目會快速顯示所有圖片,然後隨着第一個項目的圖片和其他項目顯示他們的圖片而更改。 但是當我從OnCreate中的問題消失了刪除的setContentView代碼..需要幫助

+1

您的類擴展'ListActivity'? ListActivity的默認佈局由屏幕中央的單個全屏列表組成。 http://developer.android.com/reference/android/app/ListActivity.html。你可以發佈完整的代碼以及佈局xml。 – Raghunandan

+0

我知道listActivity有默認佈局,但默認佈局不好看。我想改變它,所以我做了這個方法。 – Mryoun

回答

0

ListActivity並不需要調用setContentView(layoutResId)

如果在ListActivity中沒有呼叫setConentView(),則默認佈局有一個ListView填充佈局。它有自己的ListView,其ID是android.R.id.list

如果你想創建一個顯示在ListActivity一個新的佈局,不僅僅是Activity,那麼你必須設置ListView的ID在XML作爲@android:id/list

定製ID如果要使用這些功能,如@+id/newListView不會ListActivity自己的方法,如getListAdapter()setListAdapter()等方面的工作,你必須設置ListView@android:id/list的ID。

欲瞭解更多信息,請查看官方Android開發商site

+0

默認佈局不好看。我想改變爲我自己的佈局,所以我使用了函數,我試着改變listActivity作爲Activity,並定義一個列表視圖並設置爲你說的,但結果是一樣的,仍然有這個問題。 – Mryoun