根据主要活动中的结果更新另一个活动的UI

时间:2016-03-29 07:06:16

标签: android

创建了两个类1. MainActivity.java 2. Chat_user.java。 Chat_user类列出与之进行聊天的所有联系人并保留最近的聊天消息。主活动已创建Asynch任务,用于从其他用户获取聊天消息。我的查询如下: -

在MainActivity.java类中通过Asynch任务获取新消息 •如果列表中不存在联系人,是否可以在Chat_user类创建的列表视图(通过“回收”视图创建)中添加一个行项? •如果Chat_user类创建的列表视图中存在联系人,是否可以在现有行项目中添加文本值(上次检查后收到的聊天消息的数量)?

如果是,请告知如何实现这一目标?

提前thnx为你提供帮助.......

2 个答案:

答案 0 :(得分:0)

那么,为什么你没有使用它所来自的特定消息号或名称。

由于回购率低,我无法发表评论。

答案 1 :(得分:0)

您需要一个数据库来存储邮件历史记录。如果MainActivity通过AsyncTask接收新消息,则必须将消息存储到数据库中。当Chat_user Activity打开时,您只需从数据库加载消息。关于文本值(上次检查后收到的聊天消息的数量),您可以在数据库上创建一个存储计数器的字段。当新消息到达时,计数器将递增,当Chat_user Activity打开时,计数器将重置为0.如果您需要Android的良好数据库,我建议您使用GreenDAO。

从评论说明中更新: 因此,要直接从MainActivity更新Chat_user,您必须保留您创建的Chat_user的引用。

public class MainActivity extends Activity {

    //keep the reference, so you can use it to update directly
    private Chat_user chatUserFragment = new Chat_user();

    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        //you must create a method to update your message list in your Chat_user, and call the method from your AsyncTask when a new message come
        chatUserFragment.updateMessage(aNewMessage);
    }
}

适配器示例:

public class MessageAdapter extends BaseAdapter {

    private ArrayList<Message> data;

    public MessageAdapter(){
    }

    public void setData(ArrayList<Message> data){
        this.data = data;
    }

    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return null;
    }
}