Android Listview页脚未显示
我创建了一个具有延迟加载的动态listview。我试图向listview显示一个页脚,这样当用户滚动到listview的底部时,它将显示“加载更多项目”(作为页脚),并加载更多项目。我实现了延迟加载。我已经在页脚上设置了页脚,但是它没有显示在listview上。请帮帮我 包含listview的Tabfragment类:Android Listview页脚未显示,android,android-listview,android-fragments,Android,Android Listview,Android Fragments,我创建了一个具有延迟加载的动态listview。我试图向listview显示一个页脚,这样当用户滚动到listview的底部时,它将显示“加载更多项目”(作为页脚),并加载更多项目。我实现了延迟加载。我已经在页脚上设置了页脚,但是它没有显示在listview上。请帮帮我 包含listview的Tabfragment类: package com.example.abe; import java.util.ArrayList; import android.annotation.TargetAp
package com.example.abe;
import java.util.ArrayList;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class Tab1Fragment extends ListFragment {
ListView lv;
Activity act = this.getActivity();
Context ct = this.getActivity();
XMLGettersSetters data;
boolean loadingMore = false;
String abc[] = new String[50];
static int count = 0;
final int itemsPerPage = 10;
static ArrayList<String> myListItems = new ArrayList<String>();
ArrayList<String> myListItems2;
ArrayAdapter<String> adapter;
ArrayAdapter<String> adapter1;
static int size = 0;
int position = 0;
int top = 0;
static String android_array1[];
ArrayList<String> myListItems3;
TabsFragmentActivity t = new TabsFragmentActivity();
String parsed[] = new String[MainActivity.Sarray1.length];
@SuppressWarnings("unused")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
adapter = new ArrayAdapter<String>(getActivity().getBaseContext(),
android.R.layout.simple_list_item_1, t.myarray);
;
View root = inflater.inflate(R.layout.tab_frag1_layout, container,
false);
lv = (ListView) root.findViewById(android.R.id.list);
lv.setAdapter(adapter);
getActivity().setTitle("ABE ST count: " + t.stcount + " items");
parsed = MainActivity.Sarray1;
for (int j = 0; j < parsed.length; j++) {
System.out.println("sax" + parsed[j].toString());
}
return root;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
View footerView = ((LayoutInflater) this.getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
R.layout.listfooter, null, false);
lv.addFooterView(footerView);
getListView().setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
System.out.println(abc.length);
System.out.println(count);
System.out.println("First" + firstVisibleItem);
System.out.println("Vis" + visibleItemCount);
position = firstVisibleItem;
View v = lv.getChildAt(0);
top = (v == null) ? 0 : v.getTop();
int lastInScreen = firstVisibleItem + visibleItemCount;
System.out.println("Last" + lastInScreen);
System.out.println("Total" + totalItemCount);
if ((lastInScreen == totalItemCount) && !(loadingMore)) {
if (count < size) {
try {
Thread thread = new Thread(null, loadMoreListItems);
thread.start();
} catch (Exception e) {
e.printStackTrace();
}
}
else if (count != 0) {
Toast.makeText(getActivity().getApplicationContext(),
"Complete Data", Toast.LENGTH_LONG).show();
int lvcnt = lv.getCount();
System.out.println("Adapter Count " + " " + lvcnt);
System.out.println("Abe adapter count" + " "
+ adapter.getCount());
}
}
}
});
if (t.check1 == 0) {
try {
Thread thread = new Thread(null, loadMoreListItems);
thread.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private Runnable loadMoreListItems = new Runnable() {
@Override
public void run() {
loadingMore = true;
t.myarray1 = new ArrayList<String>();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
size = parsed.length;
for (int i = 0; i < itemsPerPage; i++) {
if (count < size) {
t.myarray1.add(parsed[count].toString());
count = count + 1;
System.out.println("Count in run " + " " + count);
} else {
break;
}
}
Log.i("a", "b");
try {
getActivity().runOnUiThread(returnRes);
} catch (Exception e) {
e.printStackTrace();
}
Log.i("a", "b");
}
};
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if (t.myarray1 != null && t.myarray1.size() > 0) {
for (int j = 0; j < t.myarray1.size(); j++) {
adapter.add(t.myarray1.get(j));
// adapter1.add(myListItems3.get(j));
}
}
// setListAdapter(adapter);
Log.i("a", "b");
adapter.notifyDataSetChanged();
// lv.setSelection(position);
lv.setSelectionFromTop(position, top);
Log.i("a", "b");
getActivity().setTitle(
"ABE ST count: " + String.valueOf(adapter.getCount())
+ " items");
t.stcount = adapter.getCount();
loadingMore = false;
t.check1 = 1;
}
};
}
package com.example.abe;
导入java.util.ArrayList;
导入android.annotation.TargetApi;
导入android.app.Activity;
导入android.content.Context;
导入android.os.Build;
导入android.os.Bundle;
导入android.support.v4.app.ListFragment;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AbsListView;
导入android.widget.AbsListView.OnScrollListener;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
@TargetApi(构建版本代码蜂窝)
公共类Tab1Fragment扩展了ListFragment{
ListView lv;
Activity act=this.getActivity();
Context ct=this.getActivity();
XMLGettersSetters数据;
boolean loadingMore=false;
字符串abc[]=新字符串[50];
静态整数计数=0;
最终int itemsPerPage=10;
静态ArrayList myListItems=新ArrayList();
ArrayList MyList 2;
阵列适配器;
阵列适配器1;
静态int size=0;
int位置=0;
int-top=0;
静态字符串android_array1[];
阵列列表MyListItem3;
TabsFragmentActivity t=新的TabsFragmentActivity();
已解析字符串[]=新字符串[MainActivity.Sarray1.length];
@抑制警告(“未使用”)
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
适配器=新的ArrayAdapter(getActivity().getBaseContext(),
android.R.layout.simple_list_item_1,t.myarray);
;
视图根=充气机。充气(R.layout.tab\u frag1\u布局,容器,
假);
lv=(ListView)root.findviewbyd(android.R.id.list);
低压设置适配器(适配器);
getActivity().setTitle(“ABE ST count:+t.stcount+”items”);
parsed=MainActivity.Sarray1;
for(int j=0;j0){
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="7dip"
android:paddingBottom="7dip"
android:orientation="horizontal"
android:gravity="center">
<LinearLayout
android:id="@+id/footer_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_gravity="center">
<TextView
android:id="@+id/footer_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dip"
android:text="Loading"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
View root = inflater.inflate(R.layout.tab_frag1_layout, container,
false);
lv = (ListView) root.findViewById(android.R.id.list);
View footerView = ((LayoutInflater) this.getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
R.layout.listfooter, null, false);
lv.addFooterView(footerView);
lv.setAdapter(adapter);