ListView动态加载

1.Activity代码:


private ListView mListView; private int mPageIndex = 1; private MyAdapter myAdapter; private ListmList = new ArrayList<>();

private View mFootView;

private Button mLoadMore;

private ProgressBar mPro;

private int mLastIndex;

private SwipeRefreshLayout mSwipe;

private Handler mHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

String jsonStr = (String) msg.obj;

Gson gson = new Gson();

//反射???

MyData myData = gson.fromJson(jsonStr, MyData.class);

//给集合赋值

mList.addAll(myData.getParamz().getFeeds());

myAdapter.notifyDataSetChanged();

mSwipe.setRefreshing(false);

}

};

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initFootView();

initView();

getInfo();

}

private void initView() {

mSwipe = (SwipeRefreshLayout) findViewById(R.id.SwipeRefresh);

mListView = (ListView) findViewById(R.id.lv);

mListView.addFooterView(mFootView);

mListView.setOnScrollListener(this);

myAdapter = new MyAdapter(mList, this);

mListView.setAdapter(myAdapter);

}

//初始化底部视图

private void initFootView() {

mFootView = getLayoutInflater().inflate(R.layout.layout, null);

mLoadMore = (Button) mFootView.findViewById(R.id.Load_More_Btn);

mPro = (ProgressBar) mFootView.findViewById(R.id.progressBar2);

mLoadMore.setOnClickListener(this);

}

private void getInfo() {

new Thread(new Runnable() {

@Override

public void run() {

try {

String s = MyOkHttp.getMyOkHttp().sendGet("http://litchiapi.jstv.com/api/GetFeeds?column=3&PageSize=10&pageIndex=" + mPageIndex + "&val=100511D3BE5301280E0992C73A9DEC41");

Message msg = new Message();

msg.obj = s;

mHandler.sendMessage(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

}).start();

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.Load_More_Btn:

mPro.setVisibility(View.VISIBLE);

mLoadMore.setVisibility(View.GONE);

mPageIndex++;

getInfo();

break;

}

}

//滑动状态监听

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

if (scrollState == 0 && myAdapter.getCount() == mLastIndex) {

mPro.setVisibility(View.GONE);

mLoadMore.setVisibility(View.VISIBLE);

}

}

//滑动时走的方法

@Override

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

mLastIndex = totalItemCount - 1;

}

}

2.Adapter(适配器)

public class MyAdapter extends BaseAdapter {

private ListmList;

private Context mContext;

public MyAdapter(ListmList, Context mContext) {

this.mList = mList;

this.mContext = mContext;

}

@Override

public int getCount() {

return mList.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Holder holder = null;

if (convertView == null) {

holder = new Holder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, null);

holder.mText = (TextView) convertView.findViewById(R.id.ListView_Text);

convertView.setTag(holder);

} else {

holder = (Holder) convertView.getTag();

}

holder.mText.setText(mList.get(position).getData().getSubject() + "");

return convertView;

}

class Holder {

private TextView mText;

}

}


2.Adapter(适配器)代码:

public class MyAdapter extends BaseAdapter {

private ListmList;

private Context mContext;

public MyAdapter(ListmList, Context mContext) {

this.mList = mList;

this.mContext = mContext;

}

@Override

public int getCount() {

return mList.size();

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Holder holder = null;

if (convertView == null) {

holder = new Holder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, null);

holder.mText = (TextView) convertView.findViewById(R.id.ListView_Text);

convertView.setTag(holder);

} else {

holder = (Holder) convertView.getTag();

}

holder.mText.setText(mList.get(position).getData().getSubject() + "");

return convertView;

}

class Holder {

private TextView mText;

}

}




阅读更多

没有更多推荐了,返回首页