package com.hupu.games.activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.common.HuPuRes;
import com.hupu.games.common.SharedPreferencesMgr;
/**
* 用户给球员评分页面
* @author panyongjun
* */
public class UserRateActivity extends HupuBaseActivity {
private String playerName;
private EditText edtMsg;
private int size = 140;
private String content;
private TextView txtNum;
private TextView txtName;
private RatingBar ratingBar;
private String userName;
private int index;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_user_rate);
userName = SharedPreferencesMgr.getString(HuPuRes.KEY_NICK_NAME, "");
playerName =getIntent().getStringExtra("name");
i_oid=getIntent().getIntExtra("oid", 0);
index=getIntent().getIntExtra("index", -1);
Log.d("UserRateActivity", "i_oid="+i_oid+" ;index="+index);
txtName =(TextView)findViewById(R.id.txt_player_name);
txtName.setText("给"+playerName+"评分:");
txtNum = (TextView) findViewById(R.id.txt_nums);
ratingBar =(RatingBar)findViewById(R.id.ratingBar);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
txtName.setText("给"+playerName+"评分:"+(int)rating+"分");
}
});
edtMsg = (EditText) findViewById(R.id.edt_rating_text);
edtMsg.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence c, int arg1, int arg2,
int arg3) {
size = 140 - (int) calculateWeiboLength(c);
txtNum.setText(size + "字");
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
});
if (userName .length()<3) {
//注册nickname
switchToNickNameAct();
} else {
showKeyBoard(edtMsg);
}
setOnClickListener(R.id.btn_back);
setOnClickListener(R.id.btn_send);
}
/**
* 注册昵称
* */
private void switchToNickNameAct()
{
Intent intent =new Intent(this,NickNameActivity.class);
startActivityForResult(intent, 5555);
}
@Override
public void treatClickEvent(int id) {
super.treatClickEvent(id);
switch (id) {
case R.id.btn_back:
finish();
break;
case R.id.btn_send:
if (userName == null)
switchToNickNameAct();
else
sent();
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode ==5555)
{
//有名称返回
if(resultCode == RESULT_OK)
userName = data.getStringExtra("username");
else if(resultCode == RESULT_CANCELED)
finish();
}
}
private int i_oid;
private void sent() {
content = edtMsg.getEditableText().toString();
int r =(int)ratingBar.getRating();
if (size < 0) {
showToast("字数超过140字");
} else if(r<1)
{
showToast("请点击星星选择评分");
}
else {
Intent data = new Intent();
data.putExtra("index", index);
data.putExtra("oid", i_oid);
data.putExtra("rating", r);
data.putExtra("desc", content.trim());
setResult(RESULT_OK, data);
finish();
}
}
/**
* 计算微博内容的长度 1个汉字 == 两个英文字母所占的长度 标点符号区分英文和中文
*
* @param c
* 所要统计的字符序列
* @return 返回字符序列计算的长度
*/
public static long calculateWeiboLength(CharSequence c) {
double len = 0;
for (int i = 0; i < c.length(); i++) {
int temp = (int) c.charAt(i);
if (temp > 0 && temp < 127) {
len += 0.5;
} else {
len++;
}
}
return Math.round(len);
}
private void showKeyBoard(View view)
{
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(view, 0);
}
}