package hillfly.wifichat.common.view;
import hillfly.wifichat.R;
import hillfly.wifichat.adapter.EmoteAdapter;
import hillfly.wifichat.common.BaseApplication;
import android.content.Context;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
public class EmoteInputView extends LinearLayout implements OnItemClickListener {
private GridView mGvDisplay;
private EmoteAdapter mDefaultAdapter;
private EmoticonsEditText mEEtView;
public EmoteInputView(Context context) {
super(context);
init();
}
public EmoteInputView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public EmoteInputView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void init() {
inflate(getContext(), R.layout.common_emotionbar, this);
mGvDisplay = (GridView) findViewById(R.id.emotionbar_gv_display);
mGvDisplay.setOnItemClickListener(this);
mDefaultAdapter = new EmoteAdapter(getContext(), BaseApplication.mEmoticons_Zem);
mGvDisplay.setAdapter(mDefaultAdapter);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
String text = null;
text = BaseApplication.mEmoticons_Zem.get(arg2);
if (mEEtView != null && !TextUtils.isEmpty(text)) {
int start = mEEtView.getSelectionStart();
CharSequence content = mEEtView.getText().insert(start, text);
mEEtView.setText(content);
// 定位光标位置
CharSequence info = mEEtView.getText();
if (info instanceof Spannable) {
Spannable spanText = (Spannable) info;
Selection.setSelection(spanText, start + text.length());
}
}
}
public void setEditText(EmoticonsEditText editText) {
mEEtView = editText;
}
}