package com.hyrt.cei.adapter;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.Forum;
import com.hyrt.cei.webservice.service.Service;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
public class PhoneStudySayGroupAdapter extends BaseAdapter implements OnClickListener{
private List<Forum> listData;
private Context context;
private LayoutInflater inflater;
private static final int NO_NET = 1;
private static final int SAVE_SUCCESS = 2;
SharedPreferences settings;
public PhoneStudySayGroupAdapter(Context context, List<Forum> listData) {
this.context = context;
this.listData = listData;
inflater = LayoutInflater.from(context);
settings = context.getSharedPreferences("loginInfo",Activity.MODE_PRIVATE);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
final Forum item = listData.get(position);
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.phone_study_saygroup_item,
null);
viewHolder.name = (TextView) convertView
.findViewById(R.id.phone_study_saygroup_item_name);
viewHolder.coursewareTime = (TextView) convertView
.findViewById(R.id.phone_study_saygroup_item_time);
viewHolder.saygroupContent = (TextView) convertView
.findViewById(R.id.phone_study_saygroup_item_content);
viewHolder.replyBtn = (ImageView) convertView
.findViewById(R.id.phone_study_saygroup_item_reply);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final Forum newItem = new Forum();
LinearLayout linearLayout = (LinearLayout) convertView.findViewById(R.id.phone_study_saygroup_childitem_parent);
linearLayout.removeAllViews();
for(int i=0;i<item.getBelowForums().size();i++){
View view = inflater.inflate(R.layout.phone_study_saygroupchilds_item, null);
((TextView) view
.findViewById(R.id.phone_study_saygroup_childitem_tv1))
.setText(item.getBelowForums().get(i).getName());
((TextView) view
.findViewById(R.id.phone_study_saygroup_childitem_tv2))
.setText(item.getBelowForums().get(i).getContent());
linearLayout.addView(view);
}
final Handler handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (msg.arg1) {
case NO_NET:
MyTools.exitShow(context, ((Activity)context).getWindow().getDecorView(), "网络有问题!");
break;
case SAVE_SUCCESS:
newItem.setStrTime(XmlUtil.parseReturnCode(msg.obj.toString()));
newItem.setContent(XmlUtil.parseContent(msg.obj.toString()));
newItem.setName(settings.getString("LOGINNAME", ""));
item.getBelowForums().add(newItem);
popWin.dismiss();
PhoneStudySayGroupAdapter.this.notifyDataSetChanged();
break;
}
}
};
viewHolder.name.setText(item.getName());
viewHolder.saygroupContent.setText(item.getContent());
viewHolder.replyBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final View view = alertSayPop();
Button submitBtn = (Button) view.findViewById(R.id.weibosdk_btnSend);
submitBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText edt = (EditText) view.findViewById(R.id.weibosdk_etEdit);
if(edt.getText() == null || edt.getText().toString().trim().length() == 0)
return;
String Serial = "1";
for (Forum forme : listData) {
if (item.getStrTime().equals(forme.getStrTime())) {
Serial = forme.getSerial();
}
}
int code = Integer.parseInt(Serial);
code++;
newItem.setSerial(code + "");
newItem.setClassId(item.getClassId());
newItem.setUserid(item.getUserid());
newItem.setTime(item.getTime());
newItem.setFunctionid(item.getFunctionid());
newItem.setContent(edt.getText().toString());
new Thread(new Runnable() {
@Override
public void run() {
String result = Service.saveBBSInfo(newItem);
Message message = handler.obtainMessage();
if (XmlUtil.parseReturnCode(result).equals("-1")) {
message.arg1 = NO_NET;
} else {
message.arg1 = SAVE_SUCCESS;
message.obj = result;
}
handler.sendMessage(message);
}
}).start();
}
});
}
});
viewHolder.coursewareTime.setText("发表于" + item.getTime() + " : ");
return convertView;
}
class ViewHolder {
TextView name;
TextView coursewareTime;
TextView saygroupContent;
ImageView replyBtn;
}
private PopupWindow popWin;
private View alertSayPop(){
final View popView = ((Activity)context).getLayoutInflater().inflate(
R.layout.say_view, null);
popWin = new PopupWindow(popView, 750,300);
popWin.setFocusable(true);
popWin.showAtLocation(((Activity)context).findViewById(R.id.full_view), Gravity.CENTER, 0,
0);
new Handler().post(new Runnable() {
public static final int WEIBO_MAX_LENGTH = 140;
private TextView mTextNum;
private Button mSend;
private EditText mEdit;
private String mContent = "";
@Override
public void run() {
Button close = (Button) popView.findViewById(R.id.weibosdk_btnClose);
close.setOnClickListener(PhoneStudySayGroupAdapter.this);
mSend = (Button) popView.findViewById(R.id.weibosdk_btnSend);
LinearLayout total = (LinearLayout) popView.findViewById(R.id.weibosdk_ll_text_limit_unit);
total.setOnClickListener(PhoneStudySayGroupAdapter.this);
mTextNum = (TextView) popView.findViewById(R.id.weibosdk_tv_text_limit);
mEdit = (EditText) popView.findViewById(R.id.weibosdk_etEdit);
mEdit.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
String mText = mEdit.getText().toString();
int len = mText.length();
if (len <= WEIBO_MAX_LENGTH) {
len = WEIBO_MAX_LENGTH - len;
//mTextNum.setTextColor(R.color.weibosdk_text_num_gray);
if (!mSend.isEnabled())
mSend.setEnabled(true);
} else {
len = len - WEIBO_MAX_LENGTH;
mTextNum.setTextColor(Color.RED);
if (mSend.isEnabled())
mSend.setEnabled(false);
}
mTextNum.setText(String.valueOf(len));
}
});
mEdit.setText(mContent);
}
});
return popView;
}
@Override
public void onClick(View v) {
int viewId = v.getId();
if (viewId == R.id.weibosdk_btnClose) {
popWin.dismiss();
}
}
}