基于Android的大学生家教系统(Android studio毕业设计+Adroid课程设计+mysql)A428

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

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

目录

一、项目介绍

二、运行环境

三、使用技术

四、软件截图

五、部分代码

1:我的帖子信息

2:我的预约信息

3:用户登录信息

六、浏览更多Android毕业设计

七、毕业设计部分免费源码分享下载


一、项目介绍

 

二、运行环境

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 MyTopicActivity extends BaseActivity implements Observer{

    // 标题
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;
    private ListView mListMessage;
    private String state;
    private LinearLayout mllNomessage;
    private List<TopicModel> listMsg = new ArrayList<TopicModel>();
    private NewsAdapter musicNetListAdapter;

    private String intentMsg;

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

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

    @Override
    public void initWidget() {

        mllNomessage = (LinearLayout) findViewById(R.id.mllNomessage);
        mListMessage = (ListView) findViewById(R.id.mListMessage);

        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("我的帖子");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
    }

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

        mListMessage.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                
                Intent playMusic = new Intent(MyTopicActivity.this, CollectNoticeMessageActivity.class);
                playMusic.putExtra("msg", listMsg.get(position));
                startActivity(playMusic);
            }
        });
    }

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

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

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

                if (null != jsonMsg && !TextUtils.isEmpty(jsonMsg)) {
                    listMsg = mGson.fromJson(entry.getData(), new TypeToken<List<TopicModel>>() {
                    }.getType());
                    TopicAdapter campusAdapter = new TopicAdapter(MyTopicActivity.this, listMsg);
                    mListMessage.setAdapter(campusAdapter);
                } else {
                    mllNomessage.setVisibility(View.VISIBLE);
                }
            }
            break;
        }

    }
    @Override
    public void onResume() {
        super.onResume();
        NewsObservable.getInstance().addObserver(MyTopicActivity.this);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        NewsObservable.getInstance().addObserver(MyTopicActivity.this);
    }

    @Override
    public void update(Observable observable, Object data) {
        listMessage(false);
    }
}
 

2:我的预约信息


public class ApplyStuListActivity extends BaseActivity {

    // 标题
    private TextView mTvTitle;
    // 返回
    private ImageView mIvBack;
    private ListView mListMessage;
    private String state;
    private LinearLayout mllNomessage;
    private List<ApplyModel> listMsg = new ArrayList<ApplyModel>();
    private UserApplyAdapter musicNetListAdapter;

    private String intentMsg;

    ImageView mivCreateMessage;

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

    }

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

    @Override
    protected void onResume() {
        super.onResume();
        initWidget();
        initData();
    }

    @Override
    public void initWidget() {
        mivCreateMessage = (ImageView) findViewById(R.id.mivCreateMessage);
        mllNomessage = (LinearLayout) findViewById(R.id.mllNomessage);
        mListMessage = (ListView) findViewById(R.id.mListMessage);
        mivCreateMessage.setVisibility(View.GONE);
        mIvBack = (ImageView) findViewById(R.id.mIvBack);
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);

        mTvTitle.setText("预约信息");
        mIvBack.setVisibility(View.VISIBLE);
        mIvBack.setOnClickListener(this);
    }

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

        mivCreateMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent playMusic = new Intent(ApplyStuListActivity.this, CreateMessageActivity.class);
                startActivity(playMusic);
            }
        });
    }

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

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

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

                if (null != jsonMsg && !TextUtils.isEmpty(jsonMsg)) {
                    listMsg.clear();
                    listMsg = mGson.fromJson(entry.getData(), new TypeToken<List<ApplyModel>>() {
                    }.getType());
                    musicNetListAdapter = new UserApplyAdapter(ApplyStuListActivity.this, listMsg);
                    mListMessage.setAdapter(musicNetListAdapter);
                } else {
                    mllNomessage.setVisibility(View.VISIBLE);
                }
            }
            break;
        }

    }

}
 

3:用户登录信息


public class LoginActivity extends BaseActivity {
    // title
    private TextView mTvTitle;
    // 登录用户名称
    private EditText mLoginNumber;
    // 登录密码
    private EditText mLoginPswd;
    // 登录按钮
    private Button mLogin;
    private Button mEnterpriseQuery;
    private LinearLayout mllTop;
    private UserModel userModel;


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

//        if(TextUtils.isEmpty(MemberUserUtils.getUid(this))&&MemberUserUtils.getUid(this).equals("")){
//
//
        initWidget();
//        }else{
//            initWidget();
//            LoginUserPost(true);

//        }


    }

    /**
     * 控件初始化
     */
    @Override
    public void initWidget() {

        mdialog = new LoadingDialog(this, "正在登录");
        mTvTitle = (TextView) findViewById(R.id.mTvTitle);
        mTvTitle.setText("登录");
        mLoginNumber = (EditText) findViewById(R.id.mLoginNumber);
        mLoginPswd = (EditText) findViewById(R.id.mLoginPswd);
        mLogin = (Button) findViewById(R.id.mLogin);
        mEnterpriseQuery = (Button) findViewById(R.id.mEnterpriseQuery);
        // mLoginNumber.setInputType(EditorInfo.TYPE_CLASS_PHONE);
        // 事件的监听
        mLogin.setOnClickListener(this);
        mEnterpriseQuery.setOnClickListener(this);
        // 给输入框设置默认的测试数据
        mLoginNumber.setSelection(mLoginNumber.getText().length());

        mLoginNumber.setText("15249246666");
        mLoginPswd.setText("123456");

    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.mLogin:
                if (TextUtils.isEmpty(mLoginNumber.getText().toString())) {
                    ToastUtil.ShowCentre(LoginActivity.this, "请输入手机号码");
                    return;
                }
                if (TextUtils.isEmpty(mLoginPswd.getText().toString())) {
                    ToastUtil.ShowCentre(LoginActivity.this, "请输入登录密码");
                    return;
                }
                LoginUserPost(true);
                break;

            case R.id.mEnterpriseQuery:
                Intent mEnterpriseQuery = new Intent(LoginActivity.this, RegisterActivity.class);
                startActivity(mEnterpriseQuery);
            default:
                break;
        }
    }

    @Override
    public void initData() {
    }

    /**
     * 用户的登录
     *
     * @param isShow
     */
    private void LoginUserPost(boolean isShow) {
        AjaxParams params = new AjaxParams();
        params.put("action_flag", "login");
        params.put("uphone", mLoginNumber.getText().toString());
        params.put("upswd", mLoginPswd.getText().toString());
        httpPost(Consts.URL + Consts.APP.RegisterAction, 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())) {
                    userModel = mGson.fromJson(entry.getData(), UserModel.class);

                    MemberUserUtils.setUid(LoginActivity.this, userModel.getUserId());
                    MemberUserUtils.setName(LoginActivity.this, userModel.getUserName());
                    MemberUserUtils.setLoginFlag(LoginActivity.this, userModel.getUserType());
                    MemberUserUtils.putBean(LoginActivity.this, "user_messgae", userModel);

                    if(userModel.getUserType().equals("1")){
                        Intent mEnterpriseQuery = new Intent(LoginActivity.this, FrameworAdminActivity.class);
                        startActivity(mEnterpriseQuery);
                    }else if(userModel.getUserType().equals("2")){
                        Intent mEnterpriseQuery = new Intent(LoginActivity.this, FrameworTeacherActivity.class);
                        startActivity(mEnterpriseQuery);
                    }else if(userModel.getUserType().equals("3")){
                        Intent mEnterpriseQuery = new Intent(LoginActivity.this, FrameworUserkActivity.class);
                        startActivity(mEnterpriseQuery);
                    }

                }
                break;

        }

    }

    @Override
    protected void callBackAllFailure(String strMsg, int actionId) {
        super.callBackAllFailure(strMsg, actionId);
        ToastUtil.show(LoginActivity.this, strMsg);

    }


}

六、浏览更多Android毕业设计

毕业设计-基于android的租房信息发布平台的APP_信息发布app源码_Android毕业设计源码的博客-CSDN博客

毕业设计-基于android选课系统的设计与实现_android学生选课系统_Android毕业设计源码的博客-CSDN博客

毕业设计之校园一卡通管理系统的设计与实现_一卡通管理系统实现_Android毕业设计源码的博客-CSDN博客

基于Android的校园二手闲置物品交易系统设计与实现_基于android的二手交易平台_Android毕业设计源码的博客-CSDN博客

基于androidstudio校园快递APP系统的设计与实现_android studio论文_Android毕业设计源码的博客-CSDN博客

基于android的商城购物定制APP_安卓开发购物app_Android毕业设计源码的博客-CSDN博客

更多毕业设计可以浏览我的个人主页哦!

七、毕业设计部分免费源码分享下载

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

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、付费专栏及课程。

余额充值