您当前的位置:首页 > 毕业设计

毕业设计- 基于Android的校园活动发布平台

时间:2022-03-06 07:28:10 阅读数:65,218人阅读
版权声明:转载请注明出处,谢谢!
—— 一直期待的时刻,就这样向我走来。

项目介绍

本系统作为是校园活动发布平台可以发布不同类型的活动如讲座、比赛、公益等等,发布后可报名也可分享到各个平台。

1. 发布活动 输入活动主题、时间、地点、选择活动类型、添加备注即可发布一项活动,发布后可分享到各个平台;

2. 参加活动 登录系统后可浏览所有类型的活动,点击我要报名即可参加活动;

3. 我的行程 可查看全部已报名的活动名称、时间、地点等活动信息;

4. 个人中心 可编辑昵称、个人简介、修改密码、更换账号等;

项目截图

系统说明: 本系统采用Bmob后端云在线数据库,因此需要自己去注册一个Bmob后端云账号,然后会有一个appkey,替换本系统中的appkey即可,如下图所示:

实现原理

布局文件activity_main.xml:

			<?xml version="1.0" encoding="utf-8"?>
			<androidx.drawerlayout.widget.DrawerLayout
				xmlns:android="http://schemas.android.com/apk/res/android"
				xmlns:app="http://schemas.android.com/apk/res-auto"
				android:id="@+id/drawer_layout_act_main"
				android:layout_width="match_parent"
				android:layout_height="match_parent"
				android:fitsSystemWindows="true">

				<androidx.coordinatorlayout.widget.CoordinatorLayout
					xmlns:android="http://schemas.android.com/apk/res/android"
					xmlns:app="http://schemas.android.com/apk/res-auto"
					android:layout_width="match_parent"
					android:layout_height="match_parent"
					android:orientation="vertical">

					<com.google.android.material.appbar.AppBarLayout
						android:id="@+id/appbar_layout"
						android:layout_width="match_parent"
						android:layout_height="wrap_content"
						android:orientation="vertical">

						<androidx.appcompat.widget.Toolbar
							android:id="@+id/toolbar_act_main"
							android:layout_width="match_parent"
							android:layout_height="?attr/actionBarSize"
							android:background="@color/colorPrimary"
							android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
							app:layout_scrollFlags="scroll|enterAlways|snap"
							app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

							<TextView
								android:id="@+id/tv_title_act_main"
								android:layout_width="wrap_content"
								android:layout_height="wrap_content"
								android:text="@string/title"
								android:textColor="@color/white"
								android:textSize="20sp" />
						</androidx.appcompat.widget.Toolbar>

						<com.google.android.material.tabs.TabLayout
							android:id="@+id/tl_category_act_main"
							android:layout_width="match_parent"
							android:layout_height="wrap_content"
							android:background="@color/colorPrimary"
							app:tabIndicatorColor="@color/white"
							app:tabMode="scrollable"
							app:tabSelectedTextColor="@color/white"
							app:tabTextColor="@color/tab_unselected_TextColor"/>
					</com.google.android.material.appbar.AppBarLayout>

					<androidx.viewpager.widget.ViewPager
						android:id="@+id/vp_activity_list_act_main"
						android:layout_width="match_parent"
						android:layout_height="match_parent"
						android:overScrollMode="never"
						app:layout_behavior="@string/appbar_scrolling_view_behavior" />

					<com.google.android.material.floatingactionbutton.FloatingActionButton
						android:id="@+id/fab_send_act_main"
						android:layout_width="wrap_content"
						android:layout_height="wrap_content"
						android:layout_gravity="bottom|end"
						android:layout_margin="25dp"
						android:layout_marginEnd="25dp"
						android:clickable="true"
						android:focusable="true"
						android:src="@drawable/iv_send"
						app:backgroundTint="@color/colorPrimary"
						app:fabSize="normal" />
				</androidx.coordinatorlayout.widget.CoordinatorLayout>

				<com.google.android.material.navigation.NavigationView
					android:id="@+id/nav_view"
					android:layout_width="match_parent"
					android:layout_height="match_parent"
					android:layout_gravity="start"
					app:headerLayout="@layout/layout__nav_header"
					app:menu="@menu/menu_nav"/>
			</androidx.drawerlayout.widget.DrawerLayout>
	  
	       public class LoginActivity extends BaseActivity implements LoginContract.View {
				@BindView(R.id.toolbar_act_login)
				Toolbar mToolbar;
				@BindView(R.id.et_username_act_login)
				EditText mEtUsername;
				@BindView(R.id.et_password_act_login)
				EditText mEtPassword;
				@BindView(R.id.btn_login_act_login)
				Button mBtnLogin;
				@BindView(R.id.tv_register_act_login)
				TextView mTvRegister;

				private void initToolbar() {
					setSupportActionBar(mToolbar);
					ActionBar actionBar = getSupportActionBar();
					if (actionBar != null) {
						actionBar.setDisplayHomeAsUpEnabled(false);
						actionBar.setDisplayShowTitleEnabled(false);
					}
					mToolbar.setTitle("");
				}

				@Override
				public LoginPresenter getInstance() {
					return new LoginPresenter();
				}

				@Override
				protected int setLayoutResID() {
					return R.layout.activity_login;
				}

				@Override
				protected void initData() {
				}

				@Override
				protected void initView() {
					initToolbar();
					mTvRegister.setOnClickListener(new View.OnClickListener() {
						@Override
						public void onClick(View view) {
							startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
						}
					});
					mBtnLogin.setOnClickListener(new View.OnClickListener() {
						@Override
						public void onClick(View view) {
							if (!RegisterUtils.checkUsername(getString(mEtUsername))) {
								showToast("请输入正确的手机/邮箱!");
							} else if (!RegisterUtils.checkPassword(getString(mEtPassword))) {
								showToast("密码位数必须不小于" + Constant.PASSWORD_NUM + "位");
							} else {
								presenter.login(getString(mEtUsername), getString(mEtPassword));
							}
						}
					});
					mEtUsername.setOnFocusChangeListener(new View.OnFocusChangeListener() {
						@Override
						public void onFocusChange(View view, boolean b) {
							if (!b && !RegisterUtils.checkUsername(getString(mEtUsername))) {
								//在 EditText 失去焦点时检查用户的输入的信息
								showToast("请输入正确的手机/邮箱!");
							}
						}
					});
				}

				@Override
				protected void initListener() {
				}

				public static void actionStart(Context context) {
					Intent intent = new Intent(context, LoginActivity.class);
					context.startActivity(intent);
				}

				@Override
				public void loginSuccess() {
					runOnUiThread(new Runnable() {
						@Override
						public void run() {
							showToast("登录成功!");
							MainActivity.actionStart(LoginActivity.this);
							finish();
						}
					});
				}

				@Override
				public void loginError(String message) {
					runOnUiThread(new Runnable() {
						@Override
						public void run() {
							showToast(message);
						}
					});
				}
			}
	  

购买套餐

权益 套餐A 套餐B
完整代码
远程调试 不支持
代码答疑 不支持
价 格 ¥250 ¥450

------转载请注明出处,感谢您对原创作者的支持------

有偿提供技术支持、Bug修复、项目外包、毕业设计、大小作业

Android学习小站

Q Q:1095817610

微信:jx-helu

邮箱:1095817610@qq.com

添加请备注"Android学习小站"