基于android的校园社区平台(Android studio毕业设计,Android课程设计)

博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

目录

一、项目介绍

二、运行环境

三、使用技术

四、部分代码

1:活动信息

2:我的申请

五、运行截图

六、免费分享源码获取


一、项目介绍

1.前台用户模块

(1)注册功能

(2)登录功能

(3)完善个人信息功能

(4)查看个人信息功能

(5)修改个人信息功能

(6)管理我发布的活动功能

(7)发布评论功能

(8)查看校园动态功能

(9)查看学校组织功能

(10)查看校园活动功能

(11)查看学校日历功能

2.后台管理员模块

(1)登录功能

(2)管理员个人信息管理功能

(3)添加管理员功能

(4)查看用户

(5)校园动态

(6)校园活动

(7)校园招聘

(8)校园组织

(9)社团信息

二、运行环境

1:客户端使用Android stuido进行开发;
2:服务端后台使用Myeclipse2014进行开发;
3:mysql数据库进行数据存储;
4:需要jdk1.7以上
5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行

三、使用技术

总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示

移动端:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示

服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调
 

四、部分代码

1:活动信息


/**
 * 活动信息详情界面
 */
public class ProjectMessageActivity extends BaseActivity {
    // title
    private TextView mTvTitle, mIvStu;
    // 返回
    private ImageView mIvBack;
    // 查询按钮
    private TextView mtvtitle;
    private TextView mtvcontentZhuSu;
    private ProjectModel noticeModel;

    private TextView mtvtime;
    private RelativeLayout mllbottom;
    private Button mbtnPay;
    private TextView mtvShopPrice;
    private TextView courseLength;

    private SimpleDraweeView guide_image;
    private TextView startTime;
    private TextView endTime;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_projectmsg);
        initWidget();
        initData();
    }

    @Override
    public void initWidget() {
        guide_image = (SimpleDraweeView) findViewById(R.id.guide_image);
        guide_image.setOnClickListener(this);
        mIvStu = (TextView) findViewById(R.id.mIvStu);
        mIvStu.setText("评论");
        mIvStu.setVisibility(View.VISIBLE);
        mIvStu.setOnClickListener(this);

        startTime = (TextView) findViewById(R.id.startTime);
        endTime = (TextView) findViewById(R.id.endTime);

        mbtnPay = (Button) findViewById(R.id.mbtnPay);

        mllbottom = (RelativeLayout) findViewById(R.id.mllbottom);

        mtvcontentZhuSu = (TextView) findViewById(R.id.mtvcontentZhuSu);
        mtvtitle = (TextView) findViewById(R.id.mtvtitle);
        mtvtime = (TextView) findViewById(R.id.mtvtime);

        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("活动信息");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
        mbtnPay.setOnClickListener(this);

        mtvShopPrice = (TextView) findViewById(R.id.mtvShopPrice);
        courseLength = (TextView) findViewById(R.id.courseLength);

    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.mIvBack:
                ProjectMessageActivity.this.finish();
                break;
            case R.id.mIvStu:
                Intent intent = new Intent(this, PropagandaReviewActivity.class);
                intent.putExtra("msg", noticeModel);
                startActivity(intent);
                break;
            case R.id.mbtnPay:


                if(Integer.valueOf(noticeModel.getTotalNumber())<Integer.valueOf(noticeModel.getProjectNumber())){
                    addApply(true);
                }else{
                    ToastUtil.ShowCentre(this,"抱歉,申请人数已满");
                }

                break;
            case R.id.guide_image:

                ArrayList<SelectImageItem> imageList = new ArrayList<SelectImageItem>();
                SelectImageItem selectImageItem;
                for (int i = 0; i < noticeModel.getProjectImg().split(",").length; i++) {
                    selectImageItem = new SelectImageItem();
                    selectImageItem.setUrl(Consts.URL_IMAGE + noticeModel.getProjectImg().split(",")[i]);
                    imageList.add(selectImageItem);
                }
                Intent intentPicture = new Intent(this, ShowListPicturesActivity.class);
                intentPicture.putExtra("piction_path", imageList);
                intentPicture.putExtra("inforMsg", noticeModel.getProjectName());
                startActivityForResult(intentPicture, 6);
                break;
        }
    }

    @Override
    public void initData() {

        noticeModel = (ProjectModel) this.getIntent().getSerializableExtra("msg");
        mtvtitle.setText(noticeModel.getProjectName());
        mtvcontentZhuSu.setText("        " + noticeModel.getProjectMessage());
        mtvtime.setText("发布时间:" + noticeModel.getProjectTime());
        courseLength.setText("活动地址:" + noticeModel.getProjectAddress());

        startTime.setText("活动时间:" + noticeModel.getProjectWeek());

        mtvShopPrice.setText(noticeModel.getTotalNumber()+"/"+noticeModel.getProjectNumber());


        if (!TextUtils.isEmpty(noticeModel.getProjectImg())) {
            Uri uIconuri = Uri.parse(Consts.URL_IMAGE + noticeModel.getProjectImg().split(",")[0]);
            FrescoUtils.initDraweeController(guide_image, uIconuri);
        }

        if(Integer.valueOf(noticeModel.getTotalNumber())==Integer.valueOf(noticeModel.getProjectNumber())){
            mbtnPay.setText("申请已满");
            mbtnPay.setFocusable(false);
            mbtnPay.setClickable(false);
            mbtnPay.setBackgroundColor(Color.parseColor("#bfbfbf"));
        }else{
            if (noticeModel.isApplyStateInfor()) {
                mbtnPay.setFocusable(false);
                mbtnPay.setClickable(false);
                mbtnPay.setText("你已参加");
                mbtnPay.setBackgroundColor(Color.parseColor("#bfbfbf"));
            }
        }

    }

    private void addApply(boolean isShow) {
        UserModel userModel = (UserModel) MemberUserUtils.getBean(this, "user_messgae");

        AjaxParams params = new AjaxParams();
        params.put("action_flag", "addApply");
        params.put("applyUserId", MemberUserUtils.getUid(this));
        params.put("applyUserName", MemberUserUtils.getName(this));
        params.put("applyMessageId", noticeModel.getProjectId());
        params.put("applyMessageName", noticeModel.getProjectName());
        httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultCode, isShow, "正在加载...");

    }

    @Override
    protected void callBackSuccess(ResponseEntry entry, int actionId) {
        super.callBackSuccess(entry, actionId);


        ToastUtil.show(ProjectMessageActivity.this, entry.getRepMsg());
        ProjectObservable.getInstance().notifyStepChange("ok");
        new Handler().postDelayed(new Runnable() {
            //
            @Override
            public void run() {
                finish();
            }
        }, 2000);
    }

}
 

2:我的申请

/**
 *我的申请界面
 *
 */
public class MyApplyActivity extends BaseActivity {

    // 标题
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;
    private TextView mIvStu;
    private ListView mListMessage;
    private String state;
    private LinearLayout mllNomessage;

    private List<ProjectModel> list_result = new ArrayList<ProjectModel>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_im);
        initWidget();
        initData();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.mIvBack:
            finish();
            break;
        }
    }

    @Override
    public void initWidget() {
        mIvStu = (TextView) findViewById(R.id.mIvStu);
        mIvStu.setText("添加");
        mIvStu.setVisibility(View.GONE);
        mllNomessage = (LinearLayout) findViewById(R.id.mllNomessage);
        mListMessage = (ListView) findViewById(R.id.mListMessage);

        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        state = this.getIntent().getStringExtra("state");
        mTvTitle.setText("活动记录");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
        mIvStu.setOnClickListener(this);
    }

    @Override
    public void initData() {
        MessageAction(true);

        mListMessage.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
            }
        });

    }

    private void MessageAction(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "listApplyProjectMesage");
        params.put("applyUserId", MemberUserUtils.getUid(this));
        httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultFlag, isShow, "正在加载...");
    }

    @Override
    protected void callBackSuccess(ResponseEntry entry, int actionId) {
        super.callBackSuccess(entry, actionId);

        switch (actionId) {
        case Consts.actionId.resultFlag:
            if (null != entry.getData() && !TextUtils.isEmpty(entry.getData())) {
                String jsonMsg = entry.getData().substring(1, entry.getData().length() - 1);

                if (null != jsonMsg && !TextUtils.isEmpty(jsonMsg)) {
                    list_result.clear();
                    list_result = mGson.fromJson(entry.getData(), new TypeToken<List<ProjectModel>>() {
                    }.getType());
                    MyApplyProjectListAdapter intersetListAdapter = new MyApplyProjectListAdapter(MyApplyActivity.this, list_result);
                    mListMessage.setAdapter(intersetListAdapter);
                } else {
                    mllNomessage.setVisibility(View.VISIBLE);
                }
            }
            break;
        }

    }

}

五、运行截图

 

  

六、免费分享源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

1:V信搜索“毕业设计小码哥”,也可以关注下方公众号,然后点击菜单栏“源码说明-源码下载”

2:点击小程序下面截图​

3:选择Android就可以看到下载源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android毕业设计源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值