2010-07-12 12 views
11

Öğelerin listesine bir altbilgi gerektiren bir ListView etkinliğim var, böylece tıklatabilir ve listeye daha fazla öğe yükler.Android AddView addFooterView() için altbilgi ekleme?

mInflater.inflate(R.layout.list_load_more_row, null); 

TextView footer = (TextView) findViewById(R.id.loadMore); 

getListView().addFooterView(footer); 

setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this)); 

Ama Im ayıklayıcıya

java.lang bu durum alma: Liste benim bir SimpleAdapter dizeleri haritasında tarafından desteklenen ve adaptör ayarlanır önce ben altbilgi eklemek için bu inorder yapmak desteklenmektedir .NullPointerException android.widget.ListView.clearRecycledState (ListView.java:489) android.widget.ListView.resetList (ListView.java:476) android.widget.ListView.setAdapter (ListView.java:417)

Sorun nedir ve altbilgiyi listeye ekleme hakkında nasıl giderim? ?

[DÜZENLE] etkinlik list_load_more_row.xml kullanıyor: Yukarıdaki onun yorumunda belirtildiği Ognian olarak

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/loadMore" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textSize="17sp" 
     android:textStyle="bold" 
     android:textColor="#000000" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:gravity="center_horizontal|center_vertical" 
     android:text="@string/hello" /> 
+0

Muhtemelen de XML'inizi gönderilmesi gerekiyor. – Christian

+0

daha fazla kod gerektirebilir, daha ayrıntılı bir logcat raporu gönderebilir misiniz? – st0le

+0

Muhtemelen R.id.loadMore şişirilmiş – ognian

cevap

21

Alrighty Iv benim soruna bir çözüm bulduk amaçlanan: Ben ana parametre olarak Inflater null koyduğundan beri, görünüm olmamıştır tahmin ediyorum

View view = mInflater.inflate(R.layout.list_load_more_row, null); 

TextView footer = (TextView) view.findViewById(R.id.loadMore); 

getListView().addFooterView(footer); 

setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this)); 

Geçerli içerik görünümüne eklendi ve böylece mainActivity onu bulamıyor ve şimdi TextView'ı bulmak için, inflater tarafından döndürülen ana görünümü açıkça kullanıyorum. Ben ListView için footerView eklerken

+1

yardımcı olur umarım görüş var, umarım benim liste alt kısmında altbilgi ayarlamak için yardımınıza ihtiyacım var, initilly altbilgi liste görünümünün altında görünür ve tıklama olayından sonra daha fazla yüklemek için tıklama seçeneği var veriler yüklendi ancak altbilgi, footer.let'ten her bir tıklamada aşağı doğru hareket eder. Bu sorunu çözmeme yardımcı olur. – MGSenthil

+0

"Tıklama olayından sonra veriler yüklendiyse ancak altbilgi altbilgideki her bir tıklatmada aşağı doğru hareket eder" ile ne kastettiğinizden emin değilim, ancak yeni verileri aldıktan sonra yaptığım şey yeni bir bağdaştırıcı oluşturmak ve sonra 'setListAdapter()' öğesini çağırmaktır) tekrar. Ancak bu, listenin en baştan başlamasına neden olur, bu yüzden 'getListView(). SetSelection (newPosition)' öğesini arayarak listenin konumunu ayarladım Yardım edin! – Kman

+1

SDK 21 ile, null 'inflate' öğesine geçerseniz bir uyarı alırsınız. Bunun yerine, 'mInflater.inflate (R.layout.list_load_more_row, getListView(), false) '. –

2

, loadMore muhtemelen bulunamadı.

bu böyle bir şey için kodunuzu değiştirerek sorun olup olmadığını görebilirsiniz:

TextView footer = (TextView) findViewById(R.id.loadMore); 
if (footer != null) { 
    getListView().addFooterView(footer); 
    setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this)); 
} else { 
    throw new NullPointerException("footer is null"); 
} 

kodunuzun daha görmeden, gerçek sebebin ne söylemek zordur. ben gibi çalışır bunu yaparsanız

+0

olduğu xml dosyasını ekledim Hey teşekkürler ve sağda loadMore bulunmuyor gibi görünüyor .. .Daha fazla kod, – Kman

0
View footerView = getLayoutInflater().inflate(R.layout.search_footer, 
      mContentList, false); 
    LongButton mSearchMoreBtn = (LongButton) footerView 
      .findViewById(R.id.searchmore_btn); 
    mSearchMoreBtn.setText(R.string.search_moreapp);//the button to add 
    mSearchMoreBtn.setBackgroundResource(R.drawable.btn_long_selector); 
    mSearchMoreBtn.setOnClickListener(mSearchMoreBtnListener); 

    footerView.setOnClickListener(mLoadMoreAppsListener); 
    mContentList.addFooterView(footerView); 

Ben footerView olarak ListView için mSearchMoreBtn eklerken, bunun yerine, yanlış olduğunu hiçbir fikrim yok, gayet