package net.basilwang; import java.util.ArrayList; import java.util.List; import net.basilwang.dao.AccountService; import net.basilwang.sever.FeedBack; import net.basilwang.sever.MessageContent; import net.basilwang.sever.MessageService; import net.basilwang.utils.PreferenceUtils; import br.com.dina.ui.widget.UITableView; import br.com.dina.ui.widget.UITableView.ClickListener; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class MessageFragment extends Fragment { View messageView; UITableView messageTable; List<MessageContent> dbMessages = new ArrayList<MessageContent>(); List<MessageContent> dbMessages0 = new ArrayList<MessageContent>(); List<MessageContent> dbMessages1 = new ArrayList<MessageContent>(); List<MessageContent> dbMessages2 = new ArrayList<MessageContent>(); MessageService messageService; int maxId; int images[] = { R.drawable.read0, R.drawable.read1, R.drawable.read2 }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { messageView = inflater.inflate(R.layout.messages_frament, container, false); messageTable = (UITableView) messageView .findViewById(R.id.message_fragment); messageService = new MessageService(this.getActivity()); maxId = messageService.selectMaxId(); int messageId[] = messageService.selectAllMessageId(); for (int i = 0; i < messageId.length; i++) { feedBack(messageId[i]); } requestMessages(); createMessages(); return messageView; } public void feedBack(int messageId) { String token=PreferenceUtils.getPreferToken(this.getActivity()); FeedBack back = new FeedBack(); String url = "http://www.ruguozhai.me/api/message/ReadMessage"; back.execute(url,token,messageId); } // 获取本地数据库中的信息 public void requestMessages() { MessageService messageService = new MessageService(this.getActivity()); dbMessages0 = messageService.getMessageOfRead(0); addMessages(dbMessages0); dbMessages2 = messageService.getMessageOfRead(2); addMessages(dbMessages2); dbMessages1 = messageService.getMessageOfRead(1); addMessages(dbMessages1); } public void addMessages(List<MessageContent> list) { for (int i = 0; i < list.size(); i++) { dbMessages.add(list.get(i)); } } public void createMessages() { messageTable.clear(); CustomClickListener listener = new CustomClickListener();// 点击删除消息 messageTable.setClickListener(listener); try { if (dbMessages.size() == 0||IsNull()) { messageTable.addBasicItem("没有新消息"); messageTable.setClickable(false); } else { createMessageList(); messageTable.setClickable(true); } } catch (Exception e) { } messageTable.commit(); } public boolean IsNull(){ for(int i=0;i<dbMessages.size();i++){ if(!dbMessages.get(i).getContent().equals("")) return false; } return true; } public void createMessageList() { for (MessageContent m : dbMessages) { if(m.getContent().equals("")) continue; messageTable.addBasicItem(images[m.getIsRead()], m.getContent(), m .getCreateTime().substring(0, 10)); } } private class CustomClickListener implements ClickListener { @Override public void onClick(int index) { try { String summery = dbMessages.get(index).getContent(); dialogMessage(summery, index); } catch (Exception e) { } } } public void deleteMessage(int index) { if (dbMessages.get(index).getMessageId() == maxId) { messageService.updateMessage(dbMessages.get(index)); } else { messageService.deleteMessage(dbMessages.get(index)); } dbMessages.remove(index); } public void IsRead(int index,int mark) { dbMessages.get(index).setIsRead(mark); messageService.updateRead(mark, dbMessages.get(index)); } public void dialogMessage(String message, final int index) { AlertDialog.Builder builder = new Builder(this.getActivity()); builder.setMessage(message); builder.setTitle("消息内容"); builder.setPositiveButton("删除", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { deleteMessage(index); createMessages(); dialog.dismiss(); } }); builder.setNegativeButton("已读", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { IsRead(index,1); createMessages(); dialog.dismiss(); } }); builder.setNeutralButton("标记", new OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { IsRead(index,2); createMessages(); dialog.dismiss(); } }); builder.create().show(); } }