ListView动态加载图片以及分段加载数据
2012-07-27 19:10
417 查看
package com.xxxxx.sns.application.friend;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView.OnItemClickListener;
/**
* 全站会员
*
* @author Administrator
*
*/
public class AllMemberActivity extends Activity implements OnClickListener,
OnItemClickListener {
private List<SimpleUser> allMemberList;// 全站好友
private AllMemberListAdaterView allMemberListAdater;// 全站适配器
private ListView friendListView;// 全站好友列表
private Button backButton;// 返回按钮
private Button sortButton;// 排序按钮
private Button searchButton;//查询按钮
private EditText searchEditText;//查询KEY
private Button findFriendButton;// 找好友按钮
private TextView titleTextView;//全站会员标题
private LayoutInflater mLayoutInflater;
private LinearLayout footView;// 底部
private LinearLayout footTextLayout;// 点击
private TextView footTextView;// 文字
private ProgressBar footProgressBar;// 进度条
private boolean isLoading = false;// 当前是否在加载 false 没有
private int sortIn = SNSParam.ORDER_DEFAULT;
// private ComparatoSortUDefualtumber sortDefual = new ComparatoSortUDefualtumber();// 默认排序
// private ComparatoSortUHYNumber sortOnLineCount = new ComparatoSortUHYNumber();// 活跃°
// private ComparatoSortUFRNumber sortFriendCount = new ComparatoSortUFRNumber();// 好友数
// private ComparatoSortUVisiNumber sortSpaceViCount = new ComparatoSortUVisiNumber();// 空间访问数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
allMemberList = new ArrayList<SimpleUser>();
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.friend_main_tab_allmember);
initViews();
user_getall();
AllMsgListManage.getInstance().activityVisi.add(this);
}
@Override
protected void onResume() {
super.onResume();
}
private void initViews() {
searchButton = (Button) findViewById(R.id.friend_main_tab_allmember_search_Button);
searchButton.setOnClickListener(this);
searchEditText = (EditText) findViewById(R.id.friend_main_tab_allmember_edit_EditText);
allMemberListAdater = new AllMemberListAdaterView(getAllMemberList(), this);
backButton = (Button) findViewById(R.id.friend_main_tab_allmember_back_Button);
backButton.setOnClickListener(this);
titleTextView=(TextView)findViewById(R.id.people_user_TextView);
friendListView = (ListView) findViewById(R.id.friend_main_tab_allmember_ListView);
mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
footView = (LinearLayout) mLayoutInflater.inflate(R.layout.all_list_item_foot, null);
footTextLayout = (LinearLayout) footView.findViewById(R.id.btn_more_bg_default_LinearLayout);
footTextLayout.setOnClickListener(this);
footTextView = (TextView) footView.findViewById(R.id.btn_more_bg_default_TextView);
footTextView.setOnClickListener(this);
footProgressBar = (ProgressBar) footView.findViewById(R.id.btn_more_bg_default_ProgressBar);
friendListView.addFooterView(footView);
loadTextes(SNSParam.LIMIT);
friendListView.setAdapter(allMemberListAdater);
friendListView.setOnItemClickListener(this);
friendListView.setDivider(null);
friendListView.setOnScrollListener(new MyScrollListener());
sortButton = (Button) findViewById(R.id.friend_main_tab_allmember_sort_Button);
sortButton.setOnClickListener(this);
findFriendButton = (Button) findViewById(R.id.friend_main_tab_myfriend_find_Button);
findFriendButton.setOnClickListener(this);
}
public List<SimpleUser> getAllMemberList() {
return allMemberList;
}
public void setAllMemberList(List<SimpleUser> allMemberList) {
this.allMemberList.addAll(allMemberList);
}
@Override
public void onClick(View v) {
dismiKeyBorwd();
switch (v.getId()) {
case R.id.friend_main_tab_allmember_back_Button:
finish();
break;
case R.id.friend_main_tab_allmember_sort_Button:
Intent intent = new Intent(this, AllsortDialogActivity.class);
startActivityForResult(intent, 23);
break;
case R.id.btn_more_bg_default_LinearLayout:
user_getallBtn();
break;
case R.id.btn_more_bg_default_TextView:
user_getallBtn();
break;
case R.id.friend_main_tab_myfriend_find_Button:
Intent intentFind = new Intent(this, FindPeopleActivity.class);
startActivity(intentFind);
break;
case R.id.friend_main_tab_allmember_search_Button:
try {
String key = searchEditText.getText().toString();
user_search(key);
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
}
//隐藏键盘
private void dismiKeyBorwd(){
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(AllMemberActivity.this
.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
//imm.hideSoftInputFromWindow(msgEditText.getWindowToken(), 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==FriendDialogGo.resultcode){
this.allMemberList.clear();
//user_getall();
return;
}
if (resultCode != RESULT_OK) {
return;
}
sortIn = data.getIntExtra(AllsortDialogActivity.ORDERSTRING,SNSParam.ORDER_DEFAULT);
System.out.println("sortIn--" + sortIn);
switch (sortIn) {
case SNSParam.ORDER_DEFAULT:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_DEFAULT;
// Collections.sort(this.allMemberList, sortDefual);
// allMemberListAdater.update();
user_getall();
break;
case SNSParam.ORDER_BY_ACTIVITY:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_ACTIVITY;
user_getall();
// Collections.sort(this.allMemberList, sortOnLineCount);
// allMemberListAdater.update();
break;
case SNSParam.ORDER_BY_FRIEND:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_FRIEND;
user_getall();
// Collections.sort(this.allMemberList, sortFriendCount);
// allMemberListAdater.update();
break;
case SNSParam.ORDER_BY_VISIT:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_VISIT;
user_getall();
// Collections.sort(this.allMemberList, sortSpaceViCount);
// allMemberListAdater.update();
break;
}
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
SimpleUser app = getAllMemberList().get(arg2);
FriendDialogGo.actionFriendDialogGo(this, app);
}
private void ToastHint(String hint) {
Toast.makeText(this, hint, Toast.LENGTH_SHORT).show();
}
// 查询好友
private void user_search(final String key) {
try {
ProgressDialogHint.Show(this, "提示", "正在查找用户...");
SearchUser searchUser = new SearchUser();
searchUser.Request(this, key, SNSParam.ORDER_DEFAULT,
SNSParam.SEARCH_RULE_DEFAULT, 0, 20);
searchUser.SetOnResultListener(new onSearchUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,
String msg) {
ProgressDialogHint.Dismiss();
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
else
ToastHint("查找用户失败");
return 0;
} else {
if (list.size() < 1) {
ToastHint("抱歉!没有找到你要的好友。。");
} else {
// searchFriend( list);
FriendSearchActivity.actionFriendSearch(
AllMemberActivity.this, list,key);
}
}
// ToastHint("查找用户成功: 共(" + list.size() + ")个");
return 1;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
private void user_getall() {
try {
ProgressDialogHint.Show(this, "提示", "正在读取所有用户...");
GetAllUser getAllUser = new GetAllUser();
int count = getAllMemberList().size();
if (count <= 0) {
count = 0;
}
getAllUser.Request(this, sortIn, count, 5);
getAllUser.SetOnResultListener(new onGetAllUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,
String msg,int allnum) {
if (allnum>0) {
titleTextView.setText(new StringBuffer().append("全站会员(").append(allnum).append(")"));
}
ProgressDialogHint.Dismiss();
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.NODATA) {
loadTextes(SNSParam.NOLIMIT);
}
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
else
ToastHint("读取所有用户失败");
return 0;
} else {
try {
if (list.size() > 0) {
loadTextes(list.size());
setAllMemberList(list);
allMemberListAdater.update();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// ToastHint("读取所有用户成功: 共(" + list.size() + ")个用户");
return 1;
}
});
getAllUser.SetOnTimeoutListener(new HttpTimeoutListener() {
@Override
public int OnTimeoutHandle() {
ProgressDialogHint.Dismiss();
ToastHint("加载超时,请重试");
return 0;
}
}, 40000);
} catch (Exception e) {
e.printStackTrace();
}
}
class MyScrollListener implements OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// System.out.println("f" + firstVisibleItem + "v" +
// visibleItemCount
// + "t" + totalItemCount);
// if(firstVisibleItem + visibleItemCount < totalItemCount - 3)
if (firstVisibleItem + visibleItemCount < totalItemCount + 2) {
// System.out.println("--f" + firstVisibleItem + "v"
// + visibleItemCount + "t" + totalItemCount);
return;
}
if (isLoading == false) {
user_getallBtn();
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
}
private void loadText() {
isLoading = true;
footProgressBar.setVisibility(View.VISIBLE);
footTextView.setText("正在加载信息...");
footTextLayout.setVisibility(View.VISIBLE);
}
private void loadTextes(int count) {
isLoading = false;
footProgressBar.setVisibility(View.GONE);
footTextView.setText("获取更多");
if (count<SNSParam.LIMIT) {
footTextLayout.setVisibility(View.GONE);
}
}
private void user_getallBtn() {
try {
loadText();
GetAllUser getAllUser = new GetAllUser();
int count = getAllMemberList().size() ;
if (count <= 0) {
count = 0;
}
getAllUser.Request(this, sortIn, count, 5);
getAllUser.SetOnResultListener(new onGetAllUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,String msg,int allnum) {
if (allnum>0) {
titleTextView.setText(new StringBuffer().append("全站会员(").append(allnum).append(")"));
}
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.NODATA) {
loadTextes(SNSParam.NOLIMIT);
}
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
// else
// ToastHint("读取所有用户失败");
return 0;
} else {
try {
if (list.size() > 0) {
loadTextes(list.size());
//装载数据
setAllMemberList(list);
allMemberListAdater.update();
}else {
loadTextes(SNSParam.LIMIT);
}
} catch (Exception e) {
e.printStackTrace();
loadTextes(SNSParam.LIMIT);
}
}
// ToastHint("读取所有用户成功: 共(" + list.size() + ")个用户");
return 1;
}
});
getAllUser.SetOnTimeoutListener(new HttpTimeoutListener() {
@Override
public int OnTimeoutHandle() {
loadTextes(SNSParam.LIMIT);
return 0;
}
}, 40000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
-------------------adater----------------------------------------------------------------------
package com.xxxxxx.sns.application.friend.adater;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class AllMemberListAdaterView extends BaseAdapter {
private List<SimpleUser> allMemberList;// 全站的好友
private Activity mActivity;
private AsyncImageLoaderView asyncImageLoader = new AsyncImageLoaderView();// 实例化异步加载图片
private Map<Long, View> cachMap=new HashMap<Long, View>();
public AllMemberListAdaterView(List<SimpleUser> allMemberList,
Activity mActivity) {
this.allMemberList = allMemberList;
this.mActivity = mActivity;
}
@Override
public int getCount() {
return allMemberList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ListViewItemViewEntity holder;
final SimpleUser app = allMemberList.get(position);
// if (convertView == null) {
if (!cachMap.containsKey(app.getUserId())) {
convertView = this.mActivity.getLayoutInflater().inflate(
R.layout.friend_main_tab_myfriend_mf_item, null);
holder = new ListViewItemViewEntity();
holder.nameTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfname_item_TextView);
holder.iconImageView = (ImageView) convertView
.findViewById(R.id.friend_main_tab_mficon_item_ImageView);
holder.officeTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfoffice_item_TextView);
holder.onlineTextView=(TextView) convertView
.findViewById(R.id.friend_main_tab_online_item_TextView);
holder.companyTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfcompny_item_TextView);
holder.rightButton = (Button) convertView
.findViewById(R.id.friend_main_tab_mfright_item_Button);
convertView.setTag(holder);
//cachMap.put(app.getUserId(), convertView);
//
} else {
// convertView=cachMap.get(app.getUserId());
holder = (ListViewItemViewEntity) convertView.getTag();
// holder.iconImageView.setImageResource(R.drawable.default_people_icon);// 默认图片
// holder.onlineTextView.setText("");
}
//实图片异步加载
final ImageView ii = holder.iconImageView;
Bitmap bitmap = null;
if (AllMsgListManage.getInstance().userIcon.containsKey(app.getAvatarUrl())) {
bitmap = AllMsgListManage.getInstance().userIcon.get(app.getAvatarUrl());
} else {
if (bitmap == null) {// 如果缓存没有图片,自己去下载
asyncImageLoader.loadBitmap(app.getAvatarUrl(),
new ImageCallbackByAid() {
@Override
public void imageLoaded(Bitmap imageBitmap,
String imageUrl, int appAid) {
if (imageBitmap != null) {
try {
// 设置控件图片
// ii.setImageBitmap(imageBitmap);
AllMsgListManage.getInstance().userIcon.put(imageUrl, imageBitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}, ii, 1);
}
}
if (bitmap != null) {
ii.setImageBitmap(bitmap);
} else {
ii.setImageResource(R.drawable.default_people_icon);// 默认图片
}
holder.nameTextView.setText(app.getUserName());
holder.officeTextView.setText(app.getOffice());
holder.companyTextView.setText(app.getCompanyName());
// System.out.println("onlineCount:" + app.getOnLineCount() + " friendCount:"+ app.getFriendCount() + " spaceCount:" + app.getSpaceCount());
holder.rightButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FriendDialogGo.actionFriendDialogGo(mActivity, app);
}
});
if (app.getOnline()==SimpleUser.ISONLINE) {
holder.onlineTextView.setText("(在线)");
}else {
holder.onlineTextView.setText("");
}
return convertView;
}
// 更新数据
public void update() {
System.out.println("-------" + allMemberList.size());
this.notifyDataSetChanged();
}
}
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView.OnItemClickListener;
/**
* 全站会员
*
* @author Administrator
*
*/
public class AllMemberActivity extends Activity implements OnClickListener,
OnItemClickListener {
private List<SimpleUser> allMemberList;// 全站好友
private AllMemberListAdaterView allMemberListAdater;// 全站适配器
private ListView friendListView;// 全站好友列表
private Button backButton;// 返回按钮
private Button sortButton;// 排序按钮
private Button searchButton;//查询按钮
private EditText searchEditText;//查询KEY
private Button findFriendButton;// 找好友按钮
private TextView titleTextView;//全站会员标题
private LayoutInflater mLayoutInflater;
private LinearLayout footView;// 底部
private LinearLayout footTextLayout;// 点击
private TextView footTextView;// 文字
private ProgressBar footProgressBar;// 进度条
private boolean isLoading = false;// 当前是否在加载 false 没有
private int sortIn = SNSParam.ORDER_DEFAULT;
// private ComparatoSortUDefualtumber sortDefual = new ComparatoSortUDefualtumber();// 默认排序
// private ComparatoSortUHYNumber sortOnLineCount = new ComparatoSortUHYNumber();// 活跃°
// private ComparatoSortUFRNumber sortFriendCount = new ComparatoSortUFRNumber();// 好友数
// private ComparatoSortUVisiNumber sortSpaceViCount = new ComparatoSortUVisiNumber();// 空间访问数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
allMemberList = new ArrayList<SimpleUser>();
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.friend_main_tab_allmember);
initViews();
user_getall();
AllMsgListManage.getInstance().activityVisi.add(this);
}
@Override
protected void onResume() {
super.onResume();
}
private void initViews() {
searchButton = (Button) findViewById(R.id.friend_main_tab_allmember_search_Button);
searchButton.setOnClickListener(this);
searchEditText = (EditText) findViewById(R.id.friend_main_tab_allmember_edit_EditText);
allMemberListAdater = new AllMemberListAdaterView(getAllMemberList(), this);
backButton = (Button) findViewById(R.id.friend_main_tab_allmember_back_Button);
backButton.setOnClickListener(this);
titleTextView=(TextView)findViewById(R.id.people_user_TextView);
friendListView = (ListView) findViewById(R.id.friend_main_tab_allmember_ListView);
mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
footView = (LinearLayout) mLayoutInflater.inflate(R.layout.all_list_item_foot, null);
footTextLayout = (LinearLayout) footView.findViewById(R.id.btn_more_bg_default_LinearLayout);
footTextLayout.setOnClickListener(this);
footTextView = (TextView) footView.findViewById(R.id.btn_more_bg_default_TextView);
footTextView.setOnClickListener(this);
footProgressBar = (ProgressBar) footView.findViewById(R.id.btn_more_bg_default_ProgressBar);
friendListView.addFooterView(footView);
loadTextes(SNSParam.LIMIT);
friendListView.setAdapter(allMemberListAdater);
friendListView.setOnItemClickListener(this);
friendListView.setDivider(null);
friendListView.setOnScrollListener(new MyScrollListener());
sortButton = (Button) findViewById(R.id.friend_main_tab_allmember_sort_Button);
sortButton.setOnClickListener(this);
findFriendButton = (Button) findViewById(R.id.friend_main_tab_myfriend_find_Button);
findFriendButton.setOnClickListener(this);
}
public List<SimpleUser> getAllMemberList() {
return allMemberList;
}
public void setAllMemberList(List<SimpleUser> allMemberList) {
this.allMemberList.addAll(allMemberList);
}
@Override
public void onClick(View v) {
dismiKeyBorwd();
switch (v.getId()) {
case R.id.friend_main_tab_allmember_back_Button:
finish();
break;
case R.id.friend_main_tab_allmember_sort_Button:
Intent intent = new Intent(this, AllsortDialogActivity.class);
startActivityForResult(intent, 23);
break;
case R.id.btn_more_bg_default_LinearLayout:
user_getallBtn();
break;
case R.id.btn_more_bg_default_TextView:
user_getallBtn();
break;
case R.id.friend_main_tab_myfriend_find_Button:
Intent intentFind = new Intent(this, FindPeopleActivity.class);
startActivity(intentFind);
break;
case R.id.friend_main_tab_allmember_search_Button:
try {
String key = searchEditText.getText().toString();
user_search(key);
} catch (Exception e) {
e.printStackTrace();
}
break;
default:
break;
}
}
//隐藏键盘
private void dismiKeyBorwd(){
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(AllMemberActivity.this
.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
//imm.hideSoftInputFromWindow(msgEditText.getWindowToken(), 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==FriendDialogGo.resultcode){
this.allMemberList.clear();
//user_getall();
return;
}
if (resultCode != RESULT_OK) {
return;
}
sortIn = data.getIntExtra(AllsortDialogActivity.ORDERSTRING,SNSParam.ORDER_DEFAULT);
System.out.println("sortIn--" + sortIn);
switch (sortIn) {
case SNSParam.ORDER_DEFAULT:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_DEFAULT;
// Collections.sort(this.allMemberList, sortDefual);
// allMemberListAdater.update();
user_getall();
break;
case SNSParam.ORDER_BY_ACTIVITY:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_ACTIVITY;
user_getall();
// Collections.sort(this.allMemberList, sortOnLineCount);
// allMemberListAdater.update();
break;
case SNSParam.ORDER_BY_FRIEND:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_FRIEND;
user_getall();
// Collections.sort(this.allMemberList, sortFriendCount);
// allMemberListAdater.update();
break;
case SNSParam.ORDER_BY_VISIT:
this.allMemberList.clear();
sortIn=SNSParam.ORDER_BY_VISIT;
user_getall();
// Collections.sort(this.allMemberList, sortSpaceViCount);
// allMemberListAdater.update();
break;
}
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
SimpleUser app = getAllMemberList().get(arg2);
FriendDialogGo.actionFriendDialogGo(this, app);
}
private void ToastHint(String hint) {
Toast.makeText(this, hint, Toast.LENGTH_SHORT).show();
}
// 查询好友
private void user_search(final String key) {
try {
ProgressDialogHint.Show(this, "提示", "正在查找用户...");
SearchUser searchUser = new SearchUser();
searchUser.Request(this, key, SNSParam.ORDER_DEFAULT,
SNSParam.SEARCH_RULE_DEFAULT, 0, 20);
searchUser.SetOnResultListener(new onSearchUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,
String msg) {
ProgressDialogHint.Dismiss();
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
else
ToastHint("查找用户失败");
return 0;
} else {
if (list.size() < 1) {
ToastHint("抱歉!没有找到你要的好友。。");
} else {
// searchFriend( list);
FriendSearchActivity.actionFriendSearch(
AllMemberActivity.this, list,key);
}
}
// ToastHint("查找用户成功: 共(" + list.size() + ")个");
return 1;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
private void user_getall() {
try {
ProgressDialogHint.Show(this, "提示", "正在读取所有用户...");
GetAllUser getAllUser = new GetAllUser();
int count = getAllMemberList().size();
if (count <= 0) {
count = 0;
}
getAllUser.Request(this, sortIn, count, 5);
getAllUser.SetOnResultListener(new onGetAllUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,
String msg,int allnum) {
if (allnum>0) {
titleTextView.setText(new StringBuffer().append("全站会员(").append(allnum).append(")"));
}
ProgressDialogHint.Dismiss();
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.NODATA) {
loadTextes(SNSParam.NOLIMIT);
}
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
else
ToastHint("读取所有用户失败");
return 0;
} else {
try {
if (list.size() > 0) {
loadTextes(list.size());
setAllMemberList(list);
allMemberListAdater.update();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// ToastHint("读取所有用户成功: 共(" + list.size() + ")个用户");
return 1;
}
});
getAllUser.SetOnTimeoutListener(new HttpTimeoutListener() {
@Override
public int OnTimeoutHandle() {
ProgressDialogHint.Dismiss();
ToastHint("加载超时,请重试");
return 0;
}
}, 40000);
} catch (Exception e) {
e.printStackTrace();
}
}
class MyScrollListener implements OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// System.out.println("f" + firstVisibleItem + "v" +
// visibleItemCount
// + "t" + totalItemCount);
// if(firstVisibleItem + visibleItemCount < totalItemCount - 3)
if (firstVisibleItem + visibleItemCount < totalItemCount + 2) {
// System.out.println("--f" + firstVisibleItem + "v"
// + visibleItemCount + "t" + totalItemCount);
return;
}
if (isLoading == false) {
user_getallBtn();
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
}
private void loadText() {
isLoading = true;
footProgressBar.setVisibility(View.VISIBLE);
footTextView.setText("正在加载信息...");
footTextLayout.setVisibility(View.VISIBLE);
}
private void loadTextes(int count) {
isLoading = false;
footProgressBar.setVisibility(View.GONE);
footTextView.setText("获取更多");
if (count<SNSParam.LIMIT) {
footTextLayout.setVisibility(View.GONE);
}
}
private void user_getallBtn() {
try {
loadText();
GetAllUser getAllUser = new GetAllUser();
int count = getAllMemberList().size() ;
if (count <= 0) {
count = 0;
}
getAllUser.Request(this, sortIn, count, 5);
getAllUser.SetOnResultListener(new onGetAllUserListener() {
@Override
public int OnResultHandle(List<SimpleUser> list, int code,String msg,int allnum) {
if (allnum>0) {
titleTextView.setText(new StringBuffer().append("全站会员(").append(allnum).append(")"));
}
if (code != RespondType.SUCCESS || list == null) {
if (code==SNSParam.NODATA) {
loadTextes(SNSParam.NOLIMIT);
}
if (code==SNSParam.error_logo2||code==SNSParam.error_logo9) {
return 0;
}
if (msg != null && !msg.equalsIgnoreCase(""))
ToastHint(msg);
// else
// ToastHint("读取所有用户失败");
return 0;
} else {
try {
if (list.size() > 0) {
loadTextes(list.size());
//装载数据
setAllMemberList(list);
allMemberListAdater.update();
}else {
loadTextes(SNSParam.LIMIT);
}
} catch (Exception e) {
e.printStackTrace();
loadTextes(SNSParam.LIMIT);
}
}
// ToastHint("读取所有用户成功: 共(" + list.size() + ")个用户");
return 1;
}
});
getAllUser.SetOnTimeoutListener(new HttpTimeoutListener() {
@Override
public int OnTimeoutHandle() {
loadTextes(SNSParam.LIMIT);
return 0;
}
}, 40000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
-------------------adater----------------------------------------------------------------------
package com.xxxxxx.sns.application.friend.adater;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class AllMemberListAdaterView extends BaseAdapter {
private List<SimpleUser> allMemberList;// 全站的好友
private Activity mActivity;
private AsyncImageLoaderView asyncImageLoader = new AsyncImageLoaderView();// 实例化异步加载图片
private Map<Long, View> cachMap=new HashMap<Long, View>();
public AllMemberListAdaterView(List<SimpleUser> allMemberList,
Activity mActivity) {
this.allMemberList = allMemberList;
this.mActivity = mActivity;
}
@Override
public int getCount() {
return allMemberList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ListViewItemViewEntity holder;
final SimpleUser app = allMemberList.get(position);
// if (convertView == null) {
if (!cachMap.containsKey(app.getUserId())) {
convertView = this.mActivity.getLayoutInflater().inflate(
R.layout.friend_main_tab_myfriend_mf_item, null);
holder = new ListViewItemViewEntity();
holder.nameTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfname_item_TextView);
holder.iconImageView = (ImageView) convertView
.findViewById(R.id.friend_main_tab_mficon_item_ImageView);
holder.officeTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfoffice_item_TextView);
holder.onlineTextView=(TextView) convertView
.findViewById(R.id.friend_main_tab_online_item_TextView);
holder.companyTextView = (TextView) convertView
.findViewById(R.id.friend_main_tab_mfcompny_item_TextView);
holder.rightButton = (Button) convertView
.findViewById(R.id.friend_main_tab_mfright_item_Button);
convertView.setTag(holder);
//cachMap.put(app.getUserId(), convertView);
//
} else {
// convertView=cachMap.get(app.getUserId());
holder = (ListViewItemViewEntity) convertView.getTag();
// holder.iconImageView.setImageResource(R.drawable.default_people_icon);// 默认图片
// holder.onlineTextView.setText("");
}
//实图片异步加载
final ImageView ii = holder.iconImageView;
Bitmap bitmap = null;
if (AllMsgListManage.getInstance().userIcon.containsKey(app.getAvatarUrl())) {
bitmap = AllMsgListManage.getInstance().userIcon.get(app.getAvatarUrl());
} else {
if (bitmap == null) {// 如果缓存没有图片,自己去下载
asyncImageLoader.loadBitmap(app.getAvatarUrl(),
new ImageCallbackByAid() {
@Override
public void imageLoaded(Bitmap imageBitmap,
String imageUrl, int appAid) {
if (imageBitmap != null) {
try {
// 设置控件图片
// ii.setImageBitmap(imageBitmap);
AllMsgListManage.getInstance().userIcon.put(imageUrl, imageBitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}, ii, 1);
}
}
if (bitmap != null) {
ii.setImageBitmap(bitmap);
} else {
ii.setImageResource(R.drawable.default_people_icon);// 默认图片
}
holder.nameTextView.setText(app.getUserName());
holder.officeTextView.setText(app.getOffice());
holder.companyTextView.setText(app.getCompanyName());
// System.out.println("onlineCount:" + app.getOnLineCount() + " friendCount:"+ app.getFriendCount() + " spaceCount:" + app.getSpaceCount());
holder.rightButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FriendDialogGo.actionFriendDialogGo(mActivity, app);
}
});
if (app.getOnline()==SimpleUser.ISONLINE) {
holder.onlineTextView.setText("(在线)");
}else {
holder.onlineTextView.setText("");
}
return convertView;
}
// 更新数据
public void update() {
System.out.println("-------" + allMemberList.size());
this.notifyDataSetChanged();
}
}
相关文章推荐
- 带图片的ListView(GridView)的图片异步加载、OOM处理以及图片和数据缓存策略的研究
- android结合异步任务,动态加载图片,Json解析数据展示在ListView,并且实现按日期分类展示,借口回调
- Android 解决ListView异步加载网络数据(图片文字)出现位置错乱以及优化ListView的加载
- ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
- android--------listView 分段加载数据
- TextView加载HTML数据(网络图片以及图片点击事件的实现)
- 解决:ScrollView嵌套ListView导致无法正确计算ListView的高度之动态加载图片高度常规方法失效。
- listview,gridview 动态加载网络图片
- Android中ListView动态加载数据 加载中
- ListView 列添加动态加载图片
- 利用JQuery的load函数动态加载页面 以及jQuery动态加载页面和请求所返回的数据
- jquery动态加载图片数据
- android左右滑动加载分页以及动态加载数据
- 异步加载数据,图片,展示到listView
- SSS___listview多条目加载、使用okhttp请求网络数据,Glide加载图片
- Gallery异步加载图片和listView动态刷新
- ListView动态加载数据模板(使用代码布局)
- Android中ListView动态加载数据 加载中 .
- ListView动态加载网络数据的解决办法
- Android中ListView动态加载数据