package com.kaixin.android.activity;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.kaixin.android.KXActivity;
import com.kaixin.android.R;
import com.kaixin.android.common.Constants;
import com.kaixin.android.result.FriendsResult;
import com.kaixin.android.utils.CallService;
import com.kaixin.android.utils.MessageUtil;
import com.kaixin.android.utils.StringUtil;
public class SearchFriendActivity extends KXActivity {
private Context mContext;
private Button mBack;
private Button mSearch;
private ListView mDisplay;
private EditText mFriend;
private String key = "";
private SearchFriendAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
setContentView(R.layout.searchfriend);
findViewById();
setListener();
init();
}
private void findViewById() {
mBack = (Button) this.findViewById(R.id.search_back);
mDisplay = (ListView) this.findViewById(R.id.search_list);
mSearch = (Button) this.findViewById(R.id.btn_search);
mFriend = (EditText) this.findViewById(R.id.friends_search);
}
private void setListener() {
mBack.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
mSearch.setOnClickListener(new OnClickListener() {
private ArrayList<FriendsResult> mFriends;
@Override
public void onClick(View v) {
if(StringUtil.isNull(mFriend.getText().toString())){
MessageUtil.showMsg(mContext, "请输入关键字查询");
return;
}
getFriendByKey();
}
private void getFriendByKey() {
if(!key.equals(mFriend.getText().toString())){
if(mKXApplication.mMySearchResults.isEmpty()){
String json = CallService.getFriendByKey(mFriend.getText().toString());
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray array = jsonObject.getJSONArray(
"data");
mFriends = new ArrayList<FriendsResult>();
for (int j = 0; j < array.length(); j++) {
FriendsResult user = new FriendsResult();
user.setUid(array.getJSONObject(j).getString("id"));
user.setEmail(array.getJSONObject(j).getString("email"));
user.setName(array.getJSONObject(j).getString("name"));
user.setFriend(false);
mFriends.add(user);
}
mKXApplication.mMySearchResults.addAll(mFriends);
mAdapter.notifyDataSetChanged();
key = mFriend.getText().toString();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
});
mDisplay.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
}
});
}
private void init() {
//添加适配器
mAdapter = new SearchFriendAdapter();
mDisplay.setAdapter(mAdapter);
}
private class SearchFriendAdapter extends BaseAdapter {
ViewHolder holder = null;
public int getCount() {
return mKXApplication.mMySearchResults.size();
}
public Object getItem(int position) {
return mKXApplication.mMySearchResults.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.add_friend_item, null);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(R.id.friend_item_title);
holder.added = (TextView) convertView
.findViewById(R.id.added_txt);
holder.add = (Button) convertView
.findViewById(R.id.add_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
CallService.addFriend(mKXApplication.mMySearchResults.get(position).getEmail());
mKXApplication.mMySearchResults.get(position).setFriend(true);
Toast.makeText(mContext, "添加好友成功", Toast.LENGTH_LONG).show();
Constants.isAddFriend = true;
mAdapter.notifyDataSetChanged();
}
});
if(mKXApplication.mMySearchResults.get(position).isFriend()){
holder.add.setVisibility(View.GONE);
holder.added.setVisibility(View.VISIBLE);
}else{
holder.add.setVisibility(View.VISIBLE);
holder.added.setVisibility(View.GONE);
}
holder.title.setText(mKXApplication.mMySearchResults.get(position).getName());
// holder.messageCount.setText("0条新");
return convertView;
}
class ViewHolder {
TextView title;
TextView added;
Button add;
}
}
}