private View createArticleView() { View convertView = LayoutInflater.from(this).inflate(R.layout.article_item, null); final Article article = this.targetArticle; // 文章配图 ImageView ivBackground = ViewHolder.get(convertView, R.id.iv_article_image); final ImageView ivFace = ViewHolder.get(convertView, R.id.iv_user_face); TextView tvNickname = ViewHolder.get(convertView, R.id.tv_user_nickname); TextView tvContent = ViewHolder.get(convertView, R.id.tv_secret_content); // 内容 TextView tvTime = ViewHolder.get(convertView, R.id.tv_time); // 时间 ImageView ivVip = ViewHolder.get(convertView, R.id.iv_vip); final ImageView ivLoves = ViewHolder.get(convertView, R.id.iv_likes); // 赞图标 final TextView tvLoves = ViewHolder.get(convertView, R.id.tv_likes); // 赞次数 TextView tvComments = ViewHolder.get(convertView, R.id.tv_comments); // 评论数 tvLoves.setText(article.getLove() + ""); tvComments.setText(article.getComments() + ""); tvTime.setText(ActivityUtil.convertTimeToString(article.getCreateTime() * 1000L)); // vip ivVip.setImageResource(article.getVip() != 0 ? R.drawable.vip : R.drawable.vipnot); tvNickname.setTextColor( getResources().getColor(article.getVip() != 0 ? R.color.c_vip : R.color.c_not_vip)); // ivVip.setVisibility(user.getVip() != 0 ? View.VISIBLE : View.GONE); if (article.getContentImageUrl().getSmallImageUrl() == null || article.getContentImageUrl().getSmallImageUrl().trim().length() == 0) { ivBackground.setVisibility(View.GONE); } else { ivBackground.setVisibility(View.VISIBLE); String imageUrl = article.getContentImageUrl().getSmallImageUrl(); // 文章配图 ImageLoader.getInstance() .displayImage( imageUrl, ivBackground, ImageLoaderOptions.normalOptions(), new ImageLoadingListener() { @Override public void onLoadingStarted(String arg0, View arg1) { // TODO Auto-generated method stub } @Override public void onLoadingFailed(String arg0, View arg1, FailReason arg2) { // TODO Auto-generated method stub } @Override public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) { // TODO Auto-generated method stub mCommentsAdapter.notifyDataSetChanged(); } @Override public void onLoadingCancelled(String arg0, View arg1) { // TODO Auto-generated method stub } }); } // displayImage 会有刷新闪烁问题 ImageLoader.getInstance() .displayImage( article.getFaceUrl().getSmallImageUrl(), ivFace, ImageLoaderOptions.circleOptions(), new ImageLoadingListener() { @Override public void onLoadingStarted(String arg0, View arg1) { // TODO Auto-generated method stub } @Override public void onLoadingFailed(String arg0, View arg1, FailReason arg2) { // TODO Auto-generated method stub } @Override public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) { // TODO Auto-generated method stub mCommentsAdapter.notifyDataSetChanged(); } @Override public void onLoadingCancelled(String arg0, View arg1) { // TODO Auto-generated method stub } }); tvNickname.setText(article.getNickname()); tvContent.setText(article.getContent()); // 秘密的内容 View love = ViewHolder.get(convertView, R.id.layout_likes); love.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub VoteArticleLovePostParams postParams = new VoteArticleLovePostParams(); postParams.articleId = targetArticle.getId(); AppServiceExtendImpl.getInstance() .loveArticle( postParams, new OnVoteArticleLoveResponseListener() { @Override public void onSuccess() { // TODO Auto-generated method stub tvLoves.setText( Integer.parseInt(tvLoves.getText().toString().trim()) + 1 + ""); ivLoves.setBackgroundResource(R.drawable.player_collection_pressed); } @Override public void onFailure(String errorMsg) { // TODO Auto-generated method stub showToast(errorMsg); } }); } }); // 分享 View v = ViewHolder.get(convertView, R.id.iv_article_more); v.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub testShare(); } }); return convertView; }
private void showMenu(final Article article, int pos, View v) { // TODO Auto-generated method stub if (null == pwMenuWin) { menuView = getLayoutInflater().inflate(R.layout.layout_review_menu, null); pwMenuWin = new PopupWindow( menuView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, false); pwMenuWin.setContentView(menuView); } if (pwMenuWin.isShowing()) { pwMenuWin.dismiss(); } int[] location = new int[2]; v.getLocationOnScreen(location); pwMenuWin.showAtLocation(v, Gravity.NO_GRAVITY, (int) touchedX, (int) touchedY); // pwMenuWin.showAtLocation(v, Gravity.NO_GRAVITY, (int) touchedX, location[1] + v.getHeight() / // 2); // pwMenuWin.showAsDropDown(mListView.getChildAt(pos), 0, 0, Gravity.CENTER); // pwMenuWin.showAsDropDown(v); final String url = me.himi.love.util.Constants.URL_ARTICLE_REVIEW; final RequestParams params = new RequestParams(); params.put("article_id", article.getId()); final AsyncHttpResponseHandler responseHandler = new AsyncHttpResponseHandler() { @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { // TODO Auto-generated method stub showToast("操作成功"); pwMenuWin.dismiss(); } @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { // TODO Auto-generated method stub showToast("操作失败"); pwMenuWin.dismiss(); } }; // 允许通过 menuView .findViewById(R.id.btn_review_allowpass) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub params.put("status", 1); HttpUtil.post(url, params, responseHandler); } }); // 禁止通过 menuView .findViewById(R.id.btn_review_notallowpass) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub params.put("status", 2); HttpUtil.post(url, params, responseHandler); } }); // 保留 menuView .findViewById(R.id.btn_review_cancle) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub // pwMenuWin.dismiss(); params.put("status", 0); HttpUtil.post(url, params, responseHandler); } }); final TextView tvContent = (TextView) menuView.findViewById(R.id.tv_article_content); tvContent.setText(article.getContent()); }