app第二阶段冲刺第三天

作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16219740.html


 

今天写信息页面的活动文件,主要就是对数据的处理,以及设置监听事件等等

复制代码
package com.linlang.grasharepro.activity;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import com.linlang.grasharepro.R;
import com.linlang.grasharepro.adapter.ChatAdapter;
import com.linlang.grasharepro.dao.NewMessageDB;
import com.linlang.grasharepro.model.NewMessageDomain;
import com.linlang.grasharepro.model.ShareCoenten;
import com.linlang.grasharepro.utils.ListViewUitls;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;


public class MessageActivity extends Activity {

    private ListView msgListView;
    private ImageView iv_sendMessage,iv_back;
    private EditText et_msg;
    private TextView tv_userName;
    private ArrayList<NewMessageDomain> share_list = new ArrayList<NewMessageDomain>();
    private NewMessageDB newMessageDB;
    private ShareCoenten info = null;
    ChatAdapter ad;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_message);

        // 获取从列表当中传递过来的数据
        Intent intent = getIntent();
        Bundle bund = intent.getExtras();
        info = (ShareCoenten) bund.getSerializable("shareContent");

        //后退按钮
        iv_back = (ImageView) findViewById(R.id.iv_back);
        iv_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MessageActivity.this.finish();
            }
        });

        initView();
    }

    private void initView() {
        tv_userName = (TextView) findViewById(R.id.tv_userName);
        tv_userName.setText(info.getUserName());
        et_msg = (EditText) findViewById(R.id.et_msg);

        //获取用户登陆信息
        SharedPreferences preferences = getSharedPreferences("userInfo",
                Activity.MODE_PRIVATE);
        String account = preferences.getString("account", "");

        newMessageDB = new NewMessageDB(this);
        newMessageDB.open();

        share_list = newMessageDB.getMyprivateLetter(account, info.getUserName());

        msgListView = (ListView) findViewById(R.id.message_list);
        ad = new ChatAdapter(share_list, this);
        msgListView.setAdapter(ad);
        ListViewUitls.setListViewHeightBasedOnChildren(msgListView);


        //发送按钮
        iv_sendMessage = (ImageView) findViewById(R.id.iv_sendMessage);
        iv_sendMessage.setOnClickListener(new MyOnClickListener());
    }

    /**
     * 控件的监听事件
     */
    private class MyOnClickListener implements View.OnClickListener {

        private int index = 0;
        @Override
        public void onClick(View v) {
            leaveMessage();

            //获取用户登陆信息
            SharedPreferences preferences = getSharedPreferences("userInfo",
                    Activity.MODE_PRIVATE);
            String account = preferences.getString("account", "");
            share_list.clear();
            share_list.addAll(newMessageDB.getMyprivateLetter(account, info.getUserName()));
            ad.setList(share_list);
            ad.notifyDataSetChanged();
        }
    }

    /**
     * 私信
     */
    public void leaveMessage() {
        //获取用户登陆信息
        SharedPreferences preferences = getSharedPreferences("userInfo",
                Activity.MODE_PRIVATE);
        String account = preferences.getString("account", "");

        String dateStr = "";
        try {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            dateStr = simpleDateFormat.format(date);
        } catch (Exception e) {

        }

        //

        //新增新消息表
        NewMessageDomain newMessageDomain = new NewMessageDomain();
        newMessageDomain.setType("1");
        newMessageDomain.setTime(dateStr);
        newMessageDomain.setFromUser(account);
        newMessageDomain.setToUser(info.getUserName());
        newMessageDomain.setContent(et_msg.getText().toString());

        newMessageDB = new NewMessageDB(this);
        newMessageDB.open();
        newMessageDB.insertNewMessage(newMessageDomain);
        et_msg.setText("");
    }
}
复制代码

 

这个文件实现的是点击用户信息区进入个人详细信息页,具体不在这里详细介绍,大家自己看代码。

复制代码
package com.linlang.grasharepro.activity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.linlang.grasharepro.R;
import com.linlang.grasharepro.adapter.BiYeShareMessageAdapter;
import com.linlang.grasharepro.dao.CollectionDB;
import com.linlang.grasharepro.dao.NewMessageDB;
import com.linlang.grasharepro.dao.ShareMessageDB;
import com.linlang.grasharepro.model.CollectionDomain;
import com.linlang.grasharepro.model.NewMessageDomain;
import com.linlang.grasharepro.model.ShareCoenten;
import com.linlang.grasharepro.model.ShareMessage;
import com.linlang.grasharepro.utils.FileUtiles;
import com.linlang.grasharepro.utils.ListViewUitls;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

public class ShareDetailsActivity extends Activity {

    private ShareCoenten info = null;
    private TextView userName, time, profe, title, content;
    private ImageView head, type,iv_collect;
    //留言List
    private List<ShareMessage> message_list = new ArrayList<ShareMessage>();

    private ListView messageList;
    private ShareMessageDB shareMessageDB;
    private NewMessageDB newMessageDB;
    private CollectionDB collectionDB;
    BiYeShareMessageAdapter shareAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_share_details);

        // 获取从列表当中传递过来的数据
        Intent intent = getIntent();
        Bundle bund = intent.getExtras();
        info = (ShareCoenten) bund.getSerializable("shareContent");
        initView();
        initShareMessage();
    }

    /**
     * 初始化分享信息
     */
    public void initShareMessage() {

        shareMessageDB = new ShareMessageDB(this);
        shareMessageDB.open();
        message_list = shareMessageDB.queryByShareCoentenId(info.get_id());

        this.messageList = (ListView) this.findViewById(R.id.detail_messageList);
        shareAdapter = new BiYeShareMessageAdapter(message_list, this);
        messageList.setAdapter(shareAdapter);
        ListViewUitls.setListViewHeightBasedOnChildren(messageList);
        //设置单击事件
        messageList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(ShareDetailsActivity.this, message_list.get(position).toString(), Toast.LENGTH_LONG).show();
            }
        });
    }

    /**
     * 点击用户信息区进入个人详细信息页
     *
     * @param view
     */
    public void userDetail(View view) {

        Bundle bundle = new Bundle();
        bundle.putSerializable("shareContent", info);
        Intent intent = new Intent(ShareDetailsActivity.this,
                UserInfoActivity.class);
        intent.putExtras(bundle);
        startActivity(intent);
    }

    /**
     * 点击留言发送按钮
     */
    public void leaveWord(String inputName) {
        //获取用户登陆信息
        SharedPreferences preferences = getSharedPreferences("userInfo",
                Activity.MODE_PRIVATE);
        String account = preferences.getString("account", "");
        String type = preferences.getString("type", "");
        String major = preferences.getString("major", "");
        String headUrl = preferences.getString("headUrl", "");

        shareMessageDB = new ShareMessageDB(this);
        shareMessageDB.open();

        ShareMessage shareMessage = new ShareMessage();
        shareMessage.setUserName(account);
        shareMessage.setShareCoentenId(info.get_id());
        shareMessage.setContent(inputName);
        shareMessage.setType(type);
        shareMessage.setHeadUrl(headUrl);

        String dateStr = "";
        try {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            dateStr = simpleDateFormat.format(date);
            shareMessage.setTime(dateStr);
        } catch (Exception e) {

        }

        //新增留言表
        int strid = shareMessageDB.insertShareMessage(shareMessage);

        //新增新消息表
        NewMessageDomain newMessageDomain = new NewMessageDomain();
        newMessageDomain.setType("2");
        newMessageDomain.setTime(dateStr);
        newMessageDomain.setFromUser(account);
        newMessageDomain.setToUser(info.getUserName());
        newMessageDomain.setContent(inputName);

        newMessageDB = new NewMessageDB(this);
        newMessageDB.open();
        newMessageDB.insertNewMessage(newMessageDomain);
    }

    private void initView() {
        userName = (TextView) findViewById(R.id.detail_user);
        type = (ImageView) findViewById(R.id.detail_type);
        profe = (TextView) findViewById(R.id.detail_profe);
        time = (TextView) findViewById(R.id.detail_time);
        head = (ImageView) findViewById(R.id.detail_head);
        title = (TextView) findViewById(R.id.detail_titile);
        content = (TextView) findViewById(R.id.detail_content);
        LinearLayout liuyan = (LinearLayout)findViewById( R.id.details_liuyan);
        iv_collect = (ImageView) findViewById(R.id.iv_collect);

        userName.setText(info.getUserName());
        profe.setText(info.getMajor());
        time.setText(info.getTime());
        title.setText(info.getTitle());
        content.setText(info.getContent());

        Bitmap bitmap = FileUtiles.getSmallBitmap(info.getHeadUrl());
        head.setImageBitmap(bitmap);

        if (info.getType().equals("在校生")){
            type.setImageResource(R.drawable.inschool);

        }
        else{
            type.setImageResource(R.drawable.outschool);

        }

        content.setOnClickListener(new MyOnClickListener(0));
        liuyan.setOnClickListener(new MyOnClickListener(1));
        iv_collect.setOnClickListener(new MyOnClickListener(2));

        //内容太多可滚动查看
        content.setMovementMethod(ScrollingMovementMethod.getInstance());
    }

    /**
     * 控件的监听事件
     */
    private class MyOnClickListener implements View.OnClickListener {

        private int index = 0;
        public MyOnClickListener(int i) {
            index = i;
        }
        @Override
        public void onClick(View v) {
            if(index == 0){
                Bundle bundle = new Bundle();
                bundle.putSerializable("shareContent", info);
                Intent intent = new Intent(ShareDetailsActivity.this,MingPian.class);
                intent.putExtras(bundle);
                startActivity(intent);

            }else if(index == 1){
                inputTitleDialog();
            }else if(index == 2){
                collect();
            }
        }
    }
    //收藏
    private void collect(){
        //获取用户登陆信息
        SharedPreferences preferences = getSharedPreferences("userInfo",
                Activity.MODE_PRIVATE);
        String account = preferences.getString("account", "");

        String dateStr = "";
        try {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            dateStr = simpleDateFormat.format(date);
        } catch (Exception e) {

        }

        collectionDB = new CollectionDB(this);
        collectionDB.open();

        CollectionDomain collection = new CollectionDomain();
        collection.setRelationId(info.get_id());
        collection.setUserName(account);
        collection.setTime(dateStr);
        collectionDB.insertCollection(collection);
    }

    //弹出留言框
    private void inputTitleDialog() {

        final EditText inputServer = new EditText(this);
        inputServer.setFocusable(true);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("留言").setIcon(
                R.drawable.icon).setView(inputServer).setNegativeButton("取消", null);
        builder.setPositiveButton("确定",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String inputName = inputServer.getText().toString();
                        leaveWord(inputName);

                        shareMessageDB = new ShareMessageDB(ShareDetailsActivity.this);
                        shareMessageDB.open();
                        message_list.clear();
                        message_list.addAll(shareMessageDB.queryByShareCoentenId(info.get_id()));
                        shareAdapter.setList(message_list);
                        shareAdapter.notifyDataSetChanged();
                    }
                });
        builder.show();
    }
}
复制代码

 

 

明天继续写适配器,

为什么写这个呢,就是它起到连接ListView界面和数据,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。

 

posted @   kuaiquxie  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示