2010-07-12 5 views
11

나는 ListView 액티비티를 가지고있다.리스트 뷰를 클릭하면 더 많은 아이템을리스트에로드 할 수있다.Android에서 ListView add footerView()에 바닥 글을 추가하고 있습니까?

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

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

getListView().addFooterView(footer); 

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

그러나 임 디버거

java.lang에서이 예외를 받고 : 목록 내 SimpleAdapter 문자열의 맵을 기본으로하고 어댑터가 설정되기 전에 내가 바닥 글을 추가하려면이 중위을 백업 .NullPointerException android.widget.ListView.clearRecycledState (ListView.java:489) android.widget.ListView.resetList (ListView.java:476) android.widget.ListView.setAdapter (ListView.java:417)

뭐가 잘못 되었나요? 목록에 내 꼬리말을 추가하는 방법은 무엇입니까? ?

[편집] 활동이 list_load_more_row.xml 사용 : 위의 자신의 코멘트에 명시된 ognian로

<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

당신은 아마뿐만 아니라 당신의 XML을 게시해야한다. – Christian

+0

에 더 많은 코드가 필요할 수 있습니다. 자세한 로그캣 보고서를 게시 할 수 있습니까? – st0le

+0

아마 R.id.loadMore가 부 풀었습니다. – ognian

답변

21

Alrighty IV 내 문제에 대한 해결책을 찾을 목적 : 내가 부모 매개 변수로 인플레이터에 널 넣어 때문에보기가되지 않았 음을 추측하고있어

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)); 

을 현재 콘텐트 뷰에 추가 되었기 때문에 mainActivity는 인포 덕터에 의해 리턴 된 부모 뷰를 명시 적으로 사용하여 TextView를 찾았 기 때문에 그것을 찾을 수 없다. 내가 ListViewfooterView를 추가 할 때

+1

나는 그 희망을 볼 수 있습니다 희망, 내 listview의 하단에 바닥 글을 설정하는 데 도움이 필요합니다, initilly 바닥 글이 listview의 하단에 나타납니다 클릭 이벤트가 클릭 한 후 더 많은 옵션을로드해야합니다 데이터가로드되었지만 footer.let에서 클릭 할 때마다 바닥 글이 아래로 이동하므로이 문제를 해결하는 데 도움이됩니다. – MGSenthil

+0

"클릭 이벤트 후 데이터가로드되었지만 바닥 글이 바닥 글에서 클릭 할 때마다 아래로 이동합니다"라는 의미가 확실하지 않지만 새 데이터를 가져온 후에 내가하고있는 일은 새 어댑터를 만든 다음 'setListAdapter()'를 호출하는 것입니다. 다시. 그러나 이렇게하면 목록이 처음부터 시작되므로 'getListView(). setSelection (newPosition)'을 호출하여 목록의 위치를 ​​조정합니다. 도움이 되길 바랍니다! – Kman

+1

SDK 21을 사용하면 'inflate'에 null을 전달하면 경고 메시지가 표시됩니다. 대신에,'mInflater.inflate (R.layout.list_load_more_row, getListView(), false)'. –

2

을 loadMore 아마 찾을 수 없습니다.

이 이런 식으로 코드를 변경하여 문제가 있는지 당신이 볼 수

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"); 
} 

는 코드의 자세한 내용을 보지 않고, 실제 원인이 무엇인지 말하기 어렵다. 내가 그것을로 작동이 작업을 수행 할 경우

+0

입니다. 안녕하세요. 감사합니다. 귀하의 권리는 loadMore을 찾을 수없는 것 같습니다. .added 도움이 더 코드 희망을 – 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); 

내가, 내가 footerViewListViewmSearchMoreBtn를 추가 할 때, 대신, 잘못 아무 생각이 없다, 그냥 잘

관련 문제