admin 管理员组

文章数量: 1086019


2023年12月18日发(作者:linux全局变量和局部变量)

移动互联网开发

课程设计报告

学生姓名: 万 思 学 号: k*********

专 业: 计算机科学与技术 班 级: k0312415

设计题目: 口袋微博

学年学期: 2014 年 秋 季学期

指导教师: **

目 录 (示例)

一、

二、

三、

1

2

3

4

四、

五、

设计题目 .................................................................................................................................... 1

设计目的 .................................................................................................................................... 1

设计原理及方案 ........................................................................................................................ 1

使用的软件工具和环境 ............................................................................................................ 1

需求分析与概要设计 ................................................................................................................ 1

数据库设计(若有) ................................................................................................................ 2

详细设计和关键问题 ................................................................................................................ 3

实现效果 .................................................................................................................................... 8

设计体会 .................................................................................................................................. 69

参 考 文 献 ............................................................................................................................................................. 71

一、 设计题目

Android社交分享平台——口袋微博 设计目的

二、 设计原理及方案

首先要实现以下这些功能:

Android端登录和注册模块的实现

Android端个人中心模块的实现

Android端快速发布模块的实现

Android端查看联系人模块的实现

Android端管理日志模块的实现

Android端管理相册模块的实现

1 使用的软件工具和环境

1)PC计算机

2)JDK安装包

3)Eclipse安装包

4)Android SDK安装包

5)ADT插件

2 需求分析与概要设计

(详细描述系统的功能需求)

Android端登录和注册模块的实现

Android端个人中心模块的实现

Android端快速发布模块的实现

Android端查看联系人模块的实现

Android端管理日志模块的实现

Android端管理相册模块的实现

(详细描述系统结构;例如总体架构设计、流程图、用例图等,并分别描述)

说明:这里的用例图和类图的对应关系可以在下面的E-R图上找到,这里我就略了一下。

1

Android端总体架

Android端

登录

注册

退出

管理个人 快速发布

查看联系

搜索用户

查看联系

拍照上传

发布日志

更新心情

博友主页

Web端的原理示意图

MyServlet

DBUtil

数据源

2

数据库设计(若有的必须给出,没有的给出其他重要设计过程)

(给出ER关系图及数据库表)

用powerdesigner设计对应关系,并生成表,E-R图

3 详细设计和关键问题

(分功能模块描述设计细节,例如详细功能图、类图和关键流程图等。遇到的关键Android问题是如何解决的)

相册列表:功能图

3

查看

4

修改权限

5

二、快速发布:

6

7

三、 实现效果

(包括系统描述和程序运行界面的截图)

1.口袋微博用户登录界面

2.口袋微博个人中心——快速发布功能界面

8

3.口袋微博个人中心——我的好友功能界面

9

4.口袋微博个人中心——最近访客功能界面

10

11

5.口袋微博个人中心——日志列表功能界面

6.口袋微博个人中心——相册列表功能界面

12

7.口袋微博——搜索好友界面

13

以下是部分重要代码由于代码太多无法容纳

(1)登录界面

package ;

import static _ADDRESS;

import static _PORT;

import ty;

import ssDialog;

import ;

import Preferences;

import ;

import ;

import ;

import ;

import ox;

import xt;

import utton;

14

import ;

public class LoginActivity extends Activity {

MyConnector mc = null;

ProgressDialog pd;

@Override

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView();

checkIfRemember();

Button btnLogin = (Button)findViewById(in);

lickListener(new kListener() {

});

@Override

public void onClick(View v) {

}

pd = (, "请稍候", "正在连接服务器...", true, true);

login();

Button btnReg = (Button)findViewById();

lickListener(new kListener() {

});

@Override

public void onClick(View v) {

}

Intent intent = new Intent(, );

startActivity(intent);

finish();

ImageButton ibExit = (ImageButton)findViewById();

lickListener(new kListener() {

});

@Override

public void onClick(View v) {

}

ocess(()); //结束进程,退出程序

}

15

//方法:连接服务器进行登录

public void login(){

new Thread(){

public void run(){

e();

try{

if(mc == null){

}

EditText etUid = (EditText)findViewById(); //获得帐号EditText

EditText etPwd = (EditText)findViewById(); //获得密码EditText

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

String uid = tableText().toString().trim(); //获得输入的帐号

String pwd = tableText().toString().trim();

if(("") || ("")){

//获得输入的密码

//判断输入是否为空

"请输入帐号或密码!", xt(,

_SHORT).show();//输出提示消息

}

String msg = "<#LOGIN#>"+uid+"|"+pwd;

TF(msg);

//组织要返回的字符串

//发出消息

return;

String receivedMsg = F();

s();

//读取服务器发来的消息

if(With("<#LOGIN_SUCCESS#>")){ //收到的消息为登录成功消息

receivedMsg = ing(17);

String [] sa = ("|");

CheckBox cb = (CheckBox)findViewById(mber); //获得CheckBox对象

if(ked()){

}

//转到功能面板

Intent intent = new Intent(,);

ra("uno", sa[0]);

startActivity(intent);

finish();

16

rememberMe(uid,pwd);

//启动功能Activity

}

else if(With("<#LOGIN_FAIL#>")){ //收到的消息为登录失败

xt(, ing(14),

_LONG).show();

();

er().quit();

}

}catch(Exception e){

tackTrace();

}

}

}.start();

}

//方法:将用户的id和密码存入Preferences

public void rememberMe(String uid,String pwd){

SharedPreferences sp = getPreferences(MODE_PRIVATE); //获得Preferences

editor = (); //获得Editor

ing("uid", uid); //将用户名存入Preferences

ing("pwd", pwd); //将密码存入Preferences

();

}

//方法:从Preferences中读取用户名和密码

public void checkIfRemember(){

SharedPreferences sp = getPreferences(MODE_PRIVATE); //获得Preferences

String uid = ing("uid", null);

String pwd = ing("pwd", null);

if(uid != null && pwd!= null){

EditText etUid = (EditText)findViewById();

EditText etPwd = (EditText)findViewById();

CheckBox cbRemember = (CheckBox)findViewById(mber);

t(uid);

t(pwd);

cked(true);

}

17

}

@Override

protected void onDestroy() {

if(mc != null){

();

}

roy();

}

}

(2)

package ;

import static _ADDRESS;

import static _PORT;

import ist;

import ty;

import ;

import ;

import y;

import ;

18

import oup;

import rView;

import apter;

import Layout;

import ew;

import ew;

import ClickListener;

public class DiaryActivity extends Activity{

ArrayList diaryList = new ArrayList();

MyConnector mc = null;

String uno = null;

String visitor = null;

BaseAdapter ba = new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {

LinearLayout ll = new LinearLayout();

TextView tvTitle = new TextView();

entation(AL);

tAppearance(, );

vity(); //设置TextView的对齐方式

t((position)[1]);

TextView tvContent = new TextView();

tAppearance(, t); //设置字体大小 vity(); //设置TextView的对齐方式

t((position)[2]); //设置显示的内容

w(tvTitle);

w(tvContent);

return ll;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

19

public Object getItem(int arg0) {

return null;

}

@Override

public int getCount() {

return ();

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

Intent intent = getIntent();

uno = ingExtra("uno"); //获得主人ID

visitor = ingExtra("visitor"); //获得访客ID

getDiaryList();

setContentView();

ListView lvDiary = (ListView)findViewById(y); //获得ListView对象 pter(ba);

temClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position,

long id) {

Intent intent = new Intent(,);

ra("rid", (position)[0]);

ra("uno", uno);

ra("visitor", visitor);

startActivity(intent);

}

});

}

//方法:获取日志列表

public void getDiaryList(){

new Thread(){

public void run(){

try{

20

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

TF("<#GET_DIARY#>"+uno+"|"+"1");

int size = t(); //读取日志的长度

for(int i=0;i

String diaryInfo = F(); //读取日志信息

String [] sa = ("|");

(sa); //将日志信息添加到列表中

}

}catch(Exception e){

tackTrace();

}

}

}.start();

}

@Override

protected void onDestroy() {

if(mc != null){

();

mc = null;

}

roy();

}

}

(3)口袋微博_____个人中心

package ;

import static ntUtil.*;

import ty;

import ialog;

import ssDialog;

21

import Interface;

import ;

import ;

import ;

import y;

import Inflater;

import ;

import oup;

import Params;

import rView;

import apter;

import xt;

import iew;

import Layout;

import ew;

import ew;

import ;

import ClickListener;

public class PublishActivity extends Activity{

String [] items = { //存放ListView中的选项内容

"更新心情","发布日志","拍照上传"

};

int [] imgIds = {

le.p_status,

le.p_diary,

le.p_shoot

};

String uno = null; //存放

MyConnector mc = null; //MyConnector对象引用

ProgressDialog pd = null; //ProgressDialog对象引用

View dialog_view = null; //心情

BaseAdapter ba = new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {

22

LinearLayout ll = new LinearLayout();

entation(NTAL);

vity();

ImageView iv = new ImageView();

ustViewBounds(true);

geResource(imgIds[position]);

w(iv);

//设置ImageView的

//将ImageView添加 //创建ImageView对象

到线性布局中

TextView tv = new TextView();

ding(10, 0, 0, 0);

outParams(new Params(_CONTENT,

_CONTENT));

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

Intent intent = getIntent(); //获得启动该Activity的Intent

}

@Override

public long getItemId(int position) {

}

@Override

public Object getItem(int position) {

}

@Override

public int getCount() {

}

return ;

return null;

return 0;

tAppearance(, );

t(items[position]);

w(tv);

return ll;

//设置TextView显示的内容

uno = ingExtra("uno");

23

setContentView(h); //设置当前屏幕

//获得ListView对象引用 ListView lvPublish = (ListView)findViewById(ish);

pter(ba);

temClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position,

long id) {

//判断点击的是哪一个选项 switch(position){

case 0:

//更新心情

LayoutInflater li = ();

dialog_view = e(h_status, null);

new r()

.setTitle("更新心情")

.setIcon(le.p_status)

.setView(dialog_view)

.setPositiveButton(

"发表",

new kListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

pd = (, "请稍候", "正在更新心情...",true,true);

})

}

updateStatus();

.setNegativeButton(

"取消",

new kListener() {

})

@Override

public void onClick(DialogInterface dialog, int which) {}

.show();

break;

//发表日志 case 1:

Intent intent1 = new Intent(,);//创建Intent

24

ra("uno", uno); //设置Intent的Extra字段

startActivity(intent1);

break;

case 2: //拍照上传

Intent intent2 = new Intent(,);//创建Intent

ra("uno", uno); //设置Intent的Extra字段

startActivity(intent2);

break;

}

}

});

}

//方法:连接服务器,更新心情

public void updateStatus(){

new Thread(){

public void run(){

e();

EditText etStatus = (EditText)dialog_ewById(tStatus);

String status = tableText().toString().trim(); //获得心情内容

if(("")){ //如果输入的心情为空

s();

xt(, "请输入更新的心_LONG).show();//输出提示

();

return;

}

String message = "<#NEW_STATUS#>"+status+"|"+uno;

if(mc == null){

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

}

try{

TF(message); //向服务器发送更新的心情

pd = (, "正在连接网络", "请稍候",true);

String reply = F(); //从服务器返回的回复

s();

情",

25

if(("<#STATUS_SUCCESS#>")){ //心情更新成功

xt(, "心情更新成功!_LONG).show();

();

}

else { //心情更新失败

xt(, "心情更新失败!_LONG).show();

();

}

}catch(Exception e){

tackTrace();

}

er().quit();

}

}.start();

}

@Override

protected void onDestroy() {

if(mc != null){

();

}

roy();

}

}

(4)注册处理____

package ;

import static _ADDRESS;

",

",

26

import static _PORT;

import ty;

import ssDialog;

import ;

import ;

import r;

import ;

import e;

import ;

import ;

import xt;

import Layout;

import ;

public class RegActivity extends Activity{

MyConnector mc = null; //声明MyConnector对象

String uno = ""; //记录用户的ID

ProgressDialog pd= null; //声明进度对话框

Handler myHandler = new Handler(){

@Override

public void handleMessage(Message msg) {

switch(){

case 0:

View linearLayout = (LinearLayout)findViewById(ult); //获得线性布局 ibility(E); //设置可见性

EditText etUno = (EditText)findViewById();

t(uno);

break;

}

Message(msg);

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

27

setContentView(); //设置当前屏幕

Button btnReg = (Button)findViewById();

lickListener(new kListener() {

});

Button btnBack = (Button)findViewById(k);

@Override

public void onClick(View v) {

}

//获得注册Button按钮对象

pd = (, "请稍候...", "正在连接服务器...", false);

register();

//获得返回按钮对象

//为返回按钮添加监听器 lickListener(new kListener() {

});

Button btnEnter = (Button)findViewById(er);

lickListener(new kListener() {

@Override

public void onClick(View v) {

}

Intent intent = new Intent(,); //创建Intent对象

startActivity(intent);

finish();

//启动Activity

//获得进入功能面板按钮对象

//为进入功能面板的按钮添加监听

}

});

@Override

public void onClick(View v) {

}

Intent intent = new Intent(,);

ra("uno", uno);

startActivity(intent);

finish();

//设置Extra字段

//启动FunctionTab

//关闭该Activity

//创建Intent

//方法:连接服务器,进行注册

public void register(){

new Thread(){

public void run(){

e();

28

//获得用户输入的数据并进行验证

EditText etName = (EditText)findViewById();

EditText etPwd1 = (EditText)findViewById(1);

EditText etPwd2 = (EditText)findViewById(2);

//获得昵称EditText对象

//获得密码EditText对象

//获得确认密码EditText对象

EditText etEmail = (EditText)findViewById(l);

EditText etStatus = (EditText)findViewById(us);

String name = tableText().toString().trim();

String pwd1 = tableText().toString().trim();

String pwd2 = tableText().toString().trim();

String email = tableText().toString().trim();

//获得邮箱EditText对象

//获得心情EditText对象

//获得昵称

//获得密码

//获得确认密码

//获得邮箱

String status = tableText().toString().trim(); //获得状态

if(("") || ("") || ("") || ("") || ("")){

xt(, "请将注册信息填写完整",

_LONG).show();

}

if(!(pwd2)){

//判断两次输入的密码是否一致

"两次输入的密码不一致!",

return;

xt(,

_LONG).show();

}

try{

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

String regInfo = "<#REGISTER#>"+name+"|"+pwd1+"|"+email+"|"+status;

TF(regInfo);

String result = F();

s();

if(With("<#REG_SUCCESS#>")){

}

else{ //注册失败

29

return;

//返回信息为注册成功

result= ing(15);

uno = result;

//去掉信息头

//记录用户的ID

//发出Handler消息 ptyMessage(0);

xt(, "注册成功!", _LONG).show();

xt(, "注册失败!请重试_LONG).show();

}

}

catch(Exception e){

tackTrace();

}

}

}.start();

}

@Override

protected void onDestroy() {

if(mc != null){

();

}

roy();

}

}

(5)

package ;

import static WITCHER_HEIGHT;

import static _HEIGHT;

import static _WIDTH;

import static _ADDRESS;

import static _PORT;

import ist;

import ;

import ty;

import ialog;

import Interface;

import ;

!",

30

import ;

import Factory;

import ;

import Drawable;

import le;

import lity;

import ;

import r;

import ;

import e;

import ;

import oup;

import ionUtils;

import rView;

import apter;

import ;

import y;

import witcher;

import iew;

import r;

import ew;

import ;

import itcher;

import ClickListener;

import SelectedListener;

public class AlbumActivity extends Activity implements ctory{

List photoInfoList = new ArrayList();

Bitmap [] photoList; //存放图片的数组

Gallery gl = null; //Gallery对象的引用

ImageSwitcher is = null; //ImageSwitcher对象的引用

Spinner sp = null; //Spinner对象的引用

MyConnector mc = null; //MyConnector对象的引用

String xid = ""; //存放相册的ID

String uno = ""; //存放用户ID

31

String visitor = "";

String pid = "";

int from = -1;

//存放访问者的ID

//存放当前显示的照片ID

//启动该Activity的来源,0为MyAlbumListActivity,1为AlbumListActivity

List albumInfoList = new ArrayList(); //存放相册信息,id和相册名称

//Spinner的Adapter

BaseAdapter baSpinner = new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {

TextView tv = new TextView();

tSize(18.5f);

tColor();

String [] sa = (position);

t(sa[1]);

return tv;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public int getCount() {

return ();

}

};

//Gallery的Adapter

BaseAdapter baGallery= new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ImageView iv = new ImageView();

ustViewBounds(true);

32

outParams(new Params(PHOTO_WIDTH, PHOTO_HEIGHT));

Height(PHOTO_HEIGHT); //设置ImageView显示的高度

Width(PHOTO_WIDTH); //设置ImageView显示的宽度

geBitmap(photoList[position]); //设置ImageView显示的内容

return iv;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public int getCount() {

if(photoList != null){

return ;

}

else{

return 0;

}

}

};

//点下Gallery中的图片后触发的事件监听器

OnItemClickListener myListener = new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position,

long id) {

if(is != null){ //如果ImageSwitcher不为空

Drawable d = new BitmapDrawable(photoList[position]);

geDrawable(d);

}

}

};

33

Handler myHandler = new Handler(){

@Override

public void handleMessage(Message msg) {

switch(){

case 0:

pter(baGallery);

geDrawable(new BitmapDrawable(photoList[0]));

break;

}

Message(msg);

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView(); //设置当前屏幕

Intent intent = getIntent(); //获取启动该Activity的Intent

uno = ingExtra("uno"); //获得Extra字段的uno

visitor = ingExtra("visitor");

from = Extra("from", -1); //获得Extra字段的from

int position = Extra("position", 0); //获得被选中的相册

String [] albumInfoArray = ingArrayExtra("albumlist"); //获得相册信息数组

xid = ingExtra("xid"); //获得被选中的相册编号

albumInfoList = new ArrayList();

for(String s:albumInfoArray){ //遍历信息数组

String [] sa = ("|");

(sa); //构建相册信息列表

}

sp = (Spinner)findViewById(m); //获得Spinner对象

pter(baSpinner); //设置Spinner对象的Adapter

ection(position); //选中在前一个Activity中被选中的相册

temSelectedListener(new OnItemSelectedListener() { //为Spinner添加监听器

@Override

public void onItemSelected(AdapterView parent, View v,

int position, long id) {

34

});

}

xid = (position)[0];

getPhotoList();

//修改存储相册ID的成员变量

//获得相册中的相片列表

@Override

public void onNothingSelected(AdapterView parent) {}

gl = (Gallery)findViewById(yPhoto);

temClickListener(myListener);

//获得Gallery对象

//设置Gallery的OnItemClickListener监听器

//获得ImageSwitcher对象 is = (ImageSwitcher)findViewById(o);

tory(this); //设置ImageSwitcher的Factory

//设置nimation(imation(this, _in));

的In动画

Animation(imation(this, _out));//设置ImageSwitcher的Out动画

Button btnBack = (Button)findViewById(umBack);

lickListener(new kListener() {

@Override

public void onClick(View v) {

switch(from){

case 0:

//判断启动该Activity的来源

//有MyAlbumListActivity启动

//获得返回按钮btnBack

Intent intent1 = new Intent(,);

ra("uno", uno);

ra("tab", "tab5");

startActivity(intent1);

finish();

break;

//由AlbumListActivity启动

case 1:

}

Intent intent2 = new Intent(,);

ra("uno", uno);

ra("visitor", visitor);

ra("tab", "tab2");

startActivity(intent2);

finish();

break;

35

}

});

Button btnDeletePhoto = (Button)findViewById(etePhoto);

if(visitor != null){ //不是查看自己的相册

ibility(); //如果不是自己的相册,隐藏删除按钮

}

lickListener(new kListener() {

@Override

public void onClick(View v) {

new r()

.setTitle("提示")

.setIcon(_icon)

.setMessage("确认删除该照片?")

.setPositiveButton(

"确定",

new kListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

int pos = ectedItemPosition();

pid = (pos)[0];

deletePhoto();

}

})

.setNegativeButton(

"取消",

null)

.show();

}

});

}

public void getPhotoList(){

new Thread(){

public void run(){

e();

36

try{

mc = null;

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

TF("<#GET_ALBUM#>"+xid);

int size = 0; //获得相册长度

//读取相册的长度 size = t();

if(size == 0){

xt(, "该相册还未上传照片",

_LONG).show();

}

//方法:删除指定照片

public void deletePhoto(){

new Thread(){

public void run(){

e();

37

}

}

();

return;

photoInfoList = new ArrayList(size);

photoList = new Bitmap[size];

for(int i=0;i

}

ptyMessage(0);

//循环获取图片数据

//读取相片信息

//切割字符串

String photoInfo = F();

String [] sa = ("|");

(sa);

//将相片信息添加到列表中

//读取相片长度

//创建相应长度的数组

int photoLength = t();

byte [] buf = new byte[photoLength];

(buf); //读入图片数据

photoList[i] = ByteArray(buf, 0, photoLength); //创建Bitmap

}catch(Exception e){

}

tackTrace();

}.start();

try{

if(mc ==null){

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

}

String msg = "<#DELETE_PHOTO#>"+pid;

TF(msg);

String reply = F();

if(("<#DELETE_PHOTO_SUCCESS#>")){

xt(, "照片删除成功!_LONG).show();

}

else {

xt(, "删除失败,请重试!_LONG).show();

}

getPhotoList();

();

}catch(Exception e){

tackTrace();

}

}

}.start();

}

@Override

public View makeView() {

ImageView iv = new ImageView(this);

leType(_INSIDE);

outParams(new

Params(IMAGESWITCHER_HEIGHT,IMAGESWITCHER_HEIGHT));

return iv;

}

@Override

protected void onDestroy() {

if(mc != null){

();

",

",

38

mc = null;

}

roy();

}

}

(6)

package ;

import static _ADDRESS;

import static _PORT;

import ist;

import ty;

import ;

import ;

import r;

import ;

import e;

import y;

import ;

39

import oup;

import kListener;

import Params;

import rView;

import apter;

import ew;

import ew;

import ;

import ClickListener;

/*

* 该Activity的主要功能是显示好友的相册列表

* 和MyAlbumActivity有所区别。

*/

public class AlbumListActivity extends Activity{

MyConnector mc = null;

ListView lvAlbumList = null;

ArrayList albumList; //存放好友相册信息的列表

String [] albumArray; //存放好友相册信息的数组

String uno = null; //存放被访问者的ID

String visitor = null; //存放访问者的ID

BaseAdapter ba = new BaseAdapter() {

@Override

public View getView(int position, View convertView, ViewGroup parent) {

TextView tv = new TextView();

tSize(20.5f); //设置字体大小

vity();

t((position)[1]); //设置TextView显示的内容

tAppearance(, );

return tv;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

40

};

public Object getItem(int position) {

}

@Override

public int getCount() {

}

return ();

return null;

Handler myHandler = new Handler(){

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

Intent intent = getIntent();

uno = ingExtra("uno");

visitor = ingExtra("visitor");

setContentView(_list); //设置当前屏幕

//获得ListView对象

@Override

public void handleMessage(Message msg) {

}

switch(){

case 0:

}

Message(msg);

pter(ba);

break;

lvAlbumList = (ListView)findViewById(mList);

temClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position,

long id) {

Intent intent = new Intent(,); //创建Intent对象

ra("uno", uno);

ra("visitor", visitor);

ra("albumlist", albumArray);

41

}

});

}

ra("xid", (position)[0]);

ra("position", position);

ra("from", 1);

startActivity(intent);

finish();

getAlbumListByAccess();

public void getAlbumListByAccess(){

new Thread(){

public void run(){

e();

try{

if(mc == null){

}

TF("<#GET_ALBUM_LIST_BY_ACCESS#>"+uno+"|"+visitor);

String reply = F();

n("-------getAlbumByAccess reply is:"+reply);

if(("<#NO_ALBUM#>")){

//该用户无相册

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

xt(, "该用户还没有上传过照片",

_LONG).show();

}

albumArray = ("$");

albumList = new ArrayList();

for(String s:albumArray){

}

ptyMessage(0);

//解析每个相册的信息

//切割字符串

();

String [] sa = ("|");

(sa);

}catch(Exception e){

}

42

tackTrace();

er().quit();

}

}.start();

}

@Override

protected void onDestroy() {

if(mc != null){

();

mc = null;

}

roy();

}

}

(7)CommentActivity .java

package ;

import static _ADDRESS;

import static _PORT;

import ist;

import ;

import ty;

import ;

import ;

import y;

import ;

import oup;

import apter;

import ;

import xt;

import Layout;

import ew;

43

import ew;

import ;

public class CommentActivity extends Activity{

MyConnector mc = null;

String visitor = null; //访问者ID

String uno = null; //被访者ID

String rid = null; //日记的ID

List cmtList; //存放评论的列表

BaseAdapter baListView = new BaseAdapter(){

@Override

public int getCount() {

return ();

}

@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) {

LinearLayout ll = new LinearLayout();

entation(AL);

TextView tvName = new TextView();

vity();

tAppearance(, );

String [] cmt = (position); //获得指定的评论信息

t(cmt[1]+"-于"+cmt[3]+"说:");

TextView tvContent = new TextView();

tAppearance(, t);

t(cmt[2]); //设置评论内容

w(tvName);

44

w(tvContent);

return ll;

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

Intent intent = getIntent();

visitor = ingExtra("visitor");

uno = ingExtra("uno");

rid = ingExtra("rid");

initComments();

setContentView(t);

ListView lvComment = (ListView)findViewById(nt);

pter(baListView);

Button btnComment = (Button)findViewById(ment);

lickListener(new kListener() {

@Override

public void onClick(View v) {

EditText etComment = (EditText)findViewById(ntContent);

String content = tableText().toString().trim(); //获得品论内容

if(("")){ //未输入评论内容

xt(, "请输入评论_LONG).show();

return;

}

if(visitor == null){

makeNewComment(content,rid,uno);

}

else if(visitor != null){

makeNewComment(content,rid,visitor);

}

initComments();

DataSetChanged();

}

容",

45

});

Button btnCommentBack = (Button)findViewById(mentBack); //获得返回按钮对象

lickListener(new kListener() {

@Override

public void onClick(View v) {

finish();

}

});

}

//方法:获取评论列表

public void initComments(){

cmtList = new ArrayList();

if(mc == null){

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

}

try{

TF("<#GET_COMMENT#>"+rid); //发出获取评论请求 int size = t(); //获取评论的个数

n("the number of comment is :"+size);

TF("<#READY_TO_READ_COMMENT#>");

for(int i=0;i

String msg = F(); //读取每条评论信息

String [] sa = ("|"); //切割字符串

(sa);

}

}

catch(Exception e){

tackTrace();

}

}

//方法:发表新评论

public void makeNewComment(String content,String rid,String uno){

try{

if(mc == null){

mc = new MyConnector(SERVER_ADDRESS, SERVER_PORT);

46

}

TF("<#NEW_COMMENT#>"+content+"|"+rid+"|"+uno);

String reply = F(); //读取回复

//解析回复 if(("<#NEW_COMMENT_SUCESS#>")){

}

else{

xt(, "评论添加成功!", _LONG).show();

xt(, "评论添加失败!", _LONG).show();

}

}

catch(Exception e){

tackTrace();

}

}

@Override

protected void onDestroy() {

if(mc != null){

();

mc = null;

}

roy();

}

}

(8) ContactsActivity .java

package ;

import static ntUtil.*;

import ist;

47


本文标签: 获得 相册 设计 信息 对象