Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 博客園客戶端 (六) OnItemLongClickListener for Blog, News and Comment

Android 博客園客戶端 (六) OnItemLongClickListener for Blog, News and Comment

編輯:關於Android編程

為博客、新聞、評論界面的ListView添加長按事件,一邊快速轉到相應的頁面。   1. 博客:查看內容、查看評論、查看作者。   2. 新聞:查看內容、查看評論。   3. 評論:引用、回復。(功能暫未實現)   復制代碼   1 package com.arlen.cnblogs.view;   2    3 import java.io.UnsupportedEncodingException;   4 import java.net.URLEncoder;   5 import java.util.List;   6    7 import android.app.Dialog;   8 import android.content.Context;   9 import android.content.Intent;  10 import android.os.Bundle;  11 import android.util.Log;  12 import android.view.View;  13 import android.widget.AdapterView;  14 import android.widget.AdapterView.OnItemClickListener;  15 import android.widget.ArrayAdapter;  16 import android.widget.ListView;  17   18 import com.arlen.cnblogs.BlogActivity;  19 import com.arlen.cnblogs.CommentActivity;  20 import com.arlen.cnblogs.NewsActivity;  21 import com.arlen.cnblogs.R;  22 import com.arlen.cnblogs.UserActivity;  23 import com.arlen.cnblogs.entity.Blog;  24 import com.arlen.cnblogs.entity.Comment;  25 import com.arlen.cnblogs.entity.News;  26 import com.arlen.cnblogs.entity.User;  27 import com.arlen.cnblogs.utils.AppUtils;  28 import com.arlen.cnblogs.utils.Config;  29   30 public class ItemDialog extends Dialog implements OnItemClickListener {  31   32     private Context context;  33     private String[] items;  34     private ListView listView;  35     public int selectIndex = 0;  36   37     public Blog blogEntry;  38     public News newsEntry;  39     public Comment commentEntry;  40     public String commentString;  41     public String TAG;  42   43     public ItemDialog(Context context, int theme) {  44         super(context, theme);  45         this.context = context;  46     }  47   48     public ItemDialog(Context context) {  49         super(context);  50         this.context = context;  51     }  52   53     public ItemDialog(Context context, String[] items) {  54         super(context);  55         this.context = context;  56         this.items = items;  57     }  58   59     @Override  60     protected void onCreate(Bundle savedInstanceState) {  61         super.onCreate(savedInstanceState);  62         this.setContentView(R.layout.item_dialog);  63   64         // this.setCanceledOnTouchOutside(false);  65   66         listView = (ListView) findViewById(R.id.listViewBlogDialog);  67         listView.setAdapter(new ArrayAdapter<String>(context,  68                 android.R.layout.simple_list_item_1, items));  69         listView.setOnItemClickListener(this);  70     }  71   72     @Override  73     public void onItemClick(AdapterView<?> parent, View view, int position,  74             long id) {  75         selectIndex = position;  76         Log.i("ItemDialog", "selectIndex   ---   " + selectIndex);  77   78         String selectItem = items[position];  79   80         if (selectItem.equals("查看內容")) {  81             this.hide();  82             if (TAG.equals("blog")) {  83                 viewBlogContent();  84             } else if (TAG.equals("news")) {  85                 viewNewsContent();  86             }  87         } else if (selectItem.equals("查看評論")) {  88             this.hide();  89             if (TAG.equals("blog")) {  90                 viewComment(blogEntry.getBlogId(), "blog");  91             } else if (TAG.equals("news")) {  92                 viewComment(newsEntry.getNewsId(), "news");  93             }  94         } else if (selectItem.equals("查看作者")) {  95             this.hide();  96             viewAuthor();  97         } else if (selectItem.equals("回復")) {  98             this.hide();  99             addComment(commentString, "回復"); 100         } else if (selectItem.equals("引用")) { 101             this.hide(); 102             addComment(commentString, "引用"); 103         } else if (selectItem.equals("取消")) { 104             this.hide(); 105         } 106  107         return; 108     } 109  110     private void viewBlogContent() { 111         Intent intent = new Intent(context, BlogActivity.class); 112  113         if (blogEntry.getAuthorAvatar() != null) { 114             intent.putExtra("avatar", blogEntry.getAuthorAvatar().toString()); 115         } else { 116             intent.putExtra( 117                     "avatar", 118                     "https://github.com/ZhangTingkuo/AndroidCnblogs/blob/master/res/drawable-hdpi/ic_launcher.png"); 119         } 120         intent.putExtra("title", blogEntry.getBlogTitle()); 121         intent.putExtra("author", blogEntry.getAuthorName()); 122         intent.putExtra("published", 123                 AppUtils.parseDateToString(blogEntry.getPublishedDateDate())); 124         intent.putExtra("id", blogEntry.getBlogId()); 125         intent.putExtra("link", blogEntry.getBlogTitle()); 126  127         context.startActivity(intent); 128     } 129  130     private void viewNewsContent() { 131         Intent intent = new Intent(context, NewsActivity.class); 132         if (newsEntry.getTopicIcon() != null) { 133             intent.putExtra("topicIcon", newsEntry.getTopicIcon().toString()); 134         } else { 135             intent.putExtra( 136                     "topicIcon", 137                     "https://github.com/ZhangTingkuo/AndroidCnblogs/blob/master/res/drawable-hdpi/ic_launcher.png"); 138         } 139  140         intent.putExtra("title", newsEntry.getNewsTitle()); 141         intent.putExtra("sourceName", newsEntry.getSourceName()); 142         intent.putExtra("published", 143                 AppUtils.parseDateToString(newsEntry.getPublishedDate())); 144         intent.putExtra("id", newsEntry.getNewsId()); 145  146         context.startActivity(intent); 147     } 148  149     private void viewAuthor() { 150  151         new Thread(new Runnable() { 152  153             @Override 154             public void run() { 155                 String authorName = blogEntry.getAuthorName(); 156                 String path = Config.SEARCH_AUTHOR_BY_NAME; 157                 Log.i("SearchActivity", "textAuthor:" + authorName); 158                 try { 159                     authorName = URLEncoder.encode(authorName, "utf-8"); 160                 } catch (UnsupportedEncodingException e) { 161                     e.printStackTrace(); 162                 } 163                 path = path.replace("{TERM}", authorName); 164  165                 Log.i("SearchActivity", "path:" + path); 166                 List<User> userList = AppUtils.getUserList(path); 167                 User userEntry = userList.get(0); 168  169                 Intent intent = new Intent(context, UserActivity.class); 170                 intent.putExtra("blogapp", userEntry.getBlogapp()); 171                 intent.putExtra("link", userEntry.getUserLink().toString()); 172  173                 if (userEntry.getUserAvatar() != null) { 174                     intent.putExtra("avatar", userEntry.getUserAvatar() 175                             .toString()); 176                 } else { 177                     intent.putExtra( 178                             "avatar", 179                             "https://github.com/ZhangTingkuo/AndroidCnblogs/blob/master/res/drawable-hdpi/ic_launcher.png"); 180                 } 181  182                 intent.putExtra("postcount", userEntry.getPostCount()); 183                 intent.putExtra("updated", 184                         AppUtils.parseDateToString(userEntry.getUpdatedDate())); 185                 intent.putExtra("title", userEntry.getTitle()); 186                 context.startActivity(intent); 187             } 188         }).start(); 189     } 190  191     private void addComment(String string, String type) { 192  193     } 194  195     private void viewComment(int id, String type) { 196         Intent intent = new Intent(context, CommentActivity.class); 197         intent.putExtra("id", id); 198         intent.putExtra("type", type); 199         context.startActivity(intent); 200     } 201 }
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved