2011-10-23 8 views
0

私はAndroid Gingerbreadとハニカムデバイスに私のアプリケーションを提供するために互換APIを使用しています。 私はListFragmentを構築し、ListFragmentに自分のListAdapterの実装を設定します。リストのアダプター互換性APIを持つハニカムのリストフラグメント

ListableAdapter adapter = new ListableAdapter(this.savedItems, (BaseActivity) this.getActivity()); 
this.setListAdapter(adapter); 

ListAdapterは、このようなgetViewメソッドを実装:ジンジャーブレッドのデバイス上で

public View getView(int pos, View convertView, ViewGroup parent) { 
Log.d(this.getClass().getName(), "building list item @ " + pos); 
View v = convertView; 
if (!this.savedItems.isEmpty() && (pos < this.savedItems.size())) { 
    if (v == null) { 
    LayoutInflater vi = (LayoutInflater) this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    v = vi.inflate(R.layout.saved_list_item, null); 
    } 

    Listable item = this.savedItems.get(pos); 
    Log.d(this.getClass().getName(), "Item @ " + pos + ": " + item.getDisplayName()); 
    if (item != null) { 
    ImageView icon = (ImageView) v.findViewById(R.id.saved_item_icon); 
    TextView title = (TextView) v.findViewById(R.id.saved_item); 
    StarField star = (StarField) v.findViewById(R.id.favorit); 
    star.setEnabled(false); 

    icon.setImageResource(item.getImageID()); 
    title.setText(item.getDisplayName()); 
    star.setChecked(item.isFavorit()); 
    } 
} 
// this.pos++; 
return v; 
} 

(サムスンギャラクシーS2)、これは非常にうまく動作しますが。私のリストは、私が期待どおりに人口が集まっています。私のGalaxyTab 10.1(Android 3.1)では、パラメータposはすべての電話番号0にあるので、リスト項目は1つだけです。

ListFragmentがこの奇妙なパラメータでgetViewを呼び出す理由を知っていますか?

答えて

0

ActivityをBaseActivityにキャストしないようにしましたか? 代わりにgetActivity()を使用するとどうなりますか。

フラグメントライフサイクルのどの部分でアダプタを設定しますか?

幸運を祈り、 ティム

+0

BaseActivityがFragmentActivityから延びている私自身の実装です。これは私の活動にいくつかの共通の機能を提供するだけです。 'onResume'メソッドでアダプタを設定しました。 – keineantwort

+0

onActivityCreatedでアダプタをセットアップしてみてください。最高の願い、ティム – Tim

+0

何も変更されません。 – keineantwort