类似于新论坛、微博实战项目开发包括服务器端和数据库,全部开源
2016-07-20 01:06
525 查看
这里不多说了,直接上项目效果图,这里界面难看了一些,不过功能是可以实现的,改改一点界面就很漂亮了。这里说的实战开发的模块,UI就省了。项目APP下载地址是:链接:http://pan.baidu.com/s/1hs36ZjQ 密码:80ji
如下:
开始是程序的入口 ,这里只分享部分代码,具体看源代码的链接请看最后面的下载地址
更多的请获取源码加QQ群:QQ群:259157059
如下:
开始是程序的入口 ,这里只分享部分代码,具体看源代码的链接请看最后面的下载地址
package com.nnddkj.communication; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener{ private ImageView img_learning,img_answer,img_message,img_Set; private String name; private TextView myid; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } /** * 程序初始化操作 * */ private void init() { img_learning=(ImageView) findViewById(R.id.img_learning);//找到控件 img_answer=(ImageView) findViewById(R.id.img_answer); img_message=(ImageView) findViewById(R.id.img_message); img_Set=(ImageView) findViewById(R.id.img_Set); myid=(TextView) findViewById(R.id.myid); img_learning.setOnClickListener(this);//监听 img_answer.setOnClickListener(this); img_message.setOnClickListener(this); img_Set.setOnClickListener(this); SharedPreferences sp=getSharedPreferences("user_config", Context.MODE_PRIVATE); String id=sp.getString("name", null); myid.setText("欢迎你,"+id); } @Override public void onClick(View v) { int id =v.getId(); switch (id) { case R.id.img_learning://学习平台 Intent Materials=new Intent(); Materials.setClass(MainActivity.this, LearningMaterials.class);//打开另一个界面 startActivity(Materials); finish();//隐藏当前界面 break; case R.id.img_answer://答疑 Intent answer=new Intent(); answer.setClass(MainActivity.this, Answer.class);//打开另一个界面 startActivity(answer); finish();//隐藏当前界面 break; case R.id.img_message://留言板 Intent message=new Intent(); message.setClass(MainActivity.this, LeaveMessage.class);//打开另一个界面 startActivity(message); finish();//隐藏当前界面 break; case R.id.img_Set://设置 Intent set=new Intent(); set.setClass(MainActivity.this, SetSystem.class);//打开另一个界面 startActivity(set); finish();//隐藏当前界面 break; default: break; } } }
package com.nnddkj.communication; import java.lang.reflect.Type; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Locale; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.nnddkj.communication.myadapter.myMessageAdapter; import com.nnddkj.communication.util.Message_Uil; import com.nnddkj.model.Model; public class LeaveMessage extends Activity implements OnClickListener{ private EditText ed_inputmessage; private Button btn_submitmessage; private String name; private String time,message; private myMessageAdapter adapter; private List<Message_Uil> list=new ArrayList<Message_Uil>(); private ListView list_message; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.leave_message); init(); } /** * 程序初始化操作 */ private void init() { ed_inputmessage=(EditText) findViewById(R.id.ed_inputmessage); btn_submitmessage=(Button) findViewById(R.id.btn_submitmessage); list_message= (ListView) findViewById(R.id.list_message); btn_submitmessage.setOnClickListener(this); //读取保存的用户名 SharedPreferences sp=getSharedPreferences("user_config", Context.MODE_PRIVATE); name=sp.getString("name", null); //获取系统时间 SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss",Locale.getDefault()); time=format.format(new Date()); getMessage(); } /** * 获取留言信息 */ private void getMessage() { String url=Model.MAIN+Model.GET_MESSAGE; AsyncHttpClient client=new AsyncHttpClient(); client.get(url, new AsyncHttpResponseHandler(){ @Override public void onSuccess(String datas) { Log.d("json", datas); try { //使用Gson来进行解释数据包 Type type=new TypeToken<LinkedList<Message_Uil>>(){ }.getType(); Gson jsonData=new Gson(); LinkedList<Message_Uil> linked=jsonData.fromJson(datas, type); for (Iterator iterator=linked.iterator();iterator.hasNext();) { Message_Uil messageUser=new Message_Uil(); Message_Uil message=(Message_Uil) iterator.next(); messageUser.setName(message.getName()); messageUser.setMessage(message.getMessage()); messageUser.setTime(message.getTime()); list.add(messageUser);//添加 到集合里面 } //添加到容器里面显示出来 adapter=new myMessageAdapter(LeaveMessage.this,list); list_message.setAdapter(adapter); list_message.setDividerHeight(0); //去掉黑线 } catch (Exception e) { // TODO: handle exception } } @Override public void onFailure(Throwable arg0) { Toast.makeText(LeaveMessage.this, "网络错误", Toast.LENGTH_SHORT).show(); super.onFailure(arg0); } }); } @Override public void onClick(View v) { int id=v.getId(); switch (id) { case R.id.btn_submitmessage: String message=ed_inputmessage.getText().toString(); if(TextUtils.isEmpty(message)){ Toast.makeText(LeaveMessage.this, "内容不能为空", Toast.LENGTH_SHORT).show(); } httpMessage(); break; default: break; } } /** * 执行提交发布留言信息 */ private void httpMessage() { message=ed_inputmessage.getText().toString(); String url=Model.MAIN+Model.LEAVE_MESSAGE+name+Model.MESSAGE+message+Model.TIME+time; AsyncHttpClient client=new AsyncHttpClient(); client.get(url, new AsyncHttpResponseHandler(){ @Override public void onSuccess(String arg0) { Toast.makeText(LeaveMessage.this, "提交成功", Toast.LENGTH_SHORT).show(); finish(); Intent main=new Intent(); main.setClass(LeaveMessage.this, MainActivity.class); startActivity(main); } @Override public void onFailure(Throwable arg0) { Toast.makeText(LeaveMessage.this, "网络错误", Toast.LENGTH_SHORT).show(); super.onFailure(arg0); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //这里监听用户按手机返回健 ,隐藏当前界面,返回主界面 finish(); Intent main=new Intent(); main.setClass(LeaveMessage.this, MainActivity.class); startActivity(main); return super.onKeyDown(keyCode, event); } }
更多的请获取源码加QQ群:QQ群:259157059
相关文章推荐
- hive 数据源 使用mysql; hive 启动报错; 加载数据 建表等基本命令
- MYSQL学习
- 编译安装mysql5.6.16
- linux下安装phpredis
- 无需数据库在线投票调查php代码
- 获取SqlServer存储过程定义的三种方法
- sqlserver进程死锁关闭的方法
- Oracle安装遇到INS-30131错误的解决方法
- win x64下安装oracle 12c出现INS-30131报错的解决方法
- 安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
- mysql5.7.13 环境搭建教程(解压缩版)
- 详解mysql建立索引的使用办法及优缺点分析
- 大型网站应用中MySQL的架构演变史
- Mysql 修改Root密码和访问IP限制
- 配置Mysql主从服务
- sql语句变量赋值
- iOS SQLite数据库存储时间
- 如何安装oracle客户端,链接oracle数据库;
- Oracle 中 level的使用
- windows mysql 安装