package com.lan.nicehair.activity; import java.util.List; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnClick; import com.lan.nicehair.R; import com.lan.nicehair.activity.MainActivity.ActionClickReceiver; import com.lan.nicehair.adapter.PostAdapter; import com.lan.nicehair.common.CircleImageView; import com.lan.nicehair.common.model.Comment; import com.lan.nicehair.common.model.ZoneAllItem; import com.lan.nicehair.common.refresh_list.RefreshListView; import com.lan.nicehair.common.refresh_list.RefreshListView.IHListViewListener; import com.lan.nicehair.utils.ImageFetcher; import com.lan.nicehair.widget.NoScrollListView; import com.lan.nicehair.widget.TopBarView; public class PostInfoActivity extends BaseActivity implements IHListViewListener{ @InjectView(R.id.topbar) TopBarView mTopBar; @InjectView(R.id.post_tag_tv) TextView mPostTagTv; @InjectView(R.id.post_comment_input) EditText mEditInput; @InjectView(R.id.centerlist) RefreshListView mListView; @OnClick(R.id.fromLayout) public void onFromClicked(View v) { } @OnClick(R.id.post_input_send) public void onPostSendClicked(View v) { } private ZoneAllItem mInfo; private ImageFetcher mImageFetcher; private String[] picArray; private List<Comment> mListComment; private PostAdapter mAdapter; private ViewHeadHolder mHolder; private InputMethodManager mInputManager; private ActionClickReceiver mActionClickReceiver; public static final String POST_RECEIVED_ACTION="post_comment_action"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.post_info_activity); ButterKnife.inject(this); mTopBar.setActivity(this); mTopBar.setTitle(""); mImageFetcher=new ImageFetcher(this, 800); mInfo=(ZoneAllItem) getIntent().getSerializableExtra("zoneAll"); addHeadView(); mAdapter = new PostAdapter(this, mListComment); mListView.setAdapter(mAdapter); mListView.setPullLoadEnable(true); mListView.setHListViewListener(this); mInputManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); registerMessageReceiver(); } private void addHeadView() { View headView=getLayoutInflater().inflate(R.layout.post_info_item, null); mHolder = new ViewHeadHolder(headView); if(mInfo!=null) { picArray=mInfo.getPicArray(); mListComment=mInfo.getListComment(); mPostTagTv.setText(mInfo.getTitle()); mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mPostHeadIv); mHolder.mPostNameTv.setText(mInfo.getName()); mHolder.mUserLevelTv.setText("LV"+mInfo.getLevel()); mHolder.mPostTimeTv.setText(mInfo.getTime()); mHolder.mPostContent.setText(mInfo.getContent()); ImageAdapter adapter = new ImageAdapter(); mHolder.mPostList.setAdapter(adapter); if(mListComment!=null&&mListComment.size()>0) { mHolder.mPostBottomLayout.setVisibility(View.VISIBLE); } } mListView.addHeaderView(headView); } public void registerMessageReceiver() { mActionClickReceiver = new ActionClickReceiver(); IntentFilter filter = new IntentFilter(); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); filter.addAction(POST_RECEIVED_ACTION); registerReceiver(mActionClickReceiver, filter); } public class ActionClickReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (POST_RECEIVED_ACTION.equals(intent.getAction())) { int uid=intent.getIntExtra("uid", 0); String name=intent.getStringExtra("name"); mInputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); mEditInput.requestFocus(); mEditInput.setHint("回复 "+name); } } } class ViewHeadHolder{ @InjectView(R.id.post_info_head) CircleImageView mPostHeadIv; @InjectView(R.id.post_info_username) TextView mPostNameTv; @InjectView(R.id.post_user_grade) TextView mUserLevelTv; @InjectView(R.id.post_addtime) TextView mPostTimeTv; @InjectView(R.id.post_info_item_content) TextView mPostContent; @InjectView(R.id.post_info_item_list) NoScrollListView mPostList; @InjectView(R.id.post_info_share_btn) LinearLayout mLayoutShare; @InjectView(R.id.post_info_collect_btn) LinearLayout mLayoutCollect; @InjectView(R.id.iv_zone_item_collection) ImageView mCollectTag; @InjectView(R.id.iv_zone_item_like) ImageView mLikeTag; @InjectView(R.id.post_info_zan_btn) LinearLayout mLayoutLike; @InjectView(R.id.post_info_comment_btn) LinearLayout mLayoutComment; @InjectView(R.id.post_info_share_layout) LinearLayout mPostBottomLayout; public ViewHeadHolder(View view) { ButterKnife.inject(this,view); } } private class ImageAdapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return picArray==null?0:picArray.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub convertView=getLayoutInflater().inflate(R.layout.post_info_img_item, null); ImageView iv=(ImageView)convertView.findViewById(R.id.post_info_img_iv); mImageFetcher.loadImage(picArray[position], iv); mImageFetcher.loadImage(mInfo.getHeadUrl(), mHolder.mPostHeadIv); return convertView; } } @Override public void onRefresh() { // TODO Auto-generated method stub mListView.stopRefresh(); } @Override public void onLoadMore() { // TODO Auto-generated method stub mListView.stopLoadMore(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); unregisterReceiver(mActionClickReceiver); } }