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

毕业设计- 基于Android的旅游计划APP

时间:2022-03-12 07:11:48 阅读数:35,018人阅读
版权声明:转载请注明出处,谢谢!
—— 明日复明日,明日何其多。

项目介绍

系统打开进入登录页面,如果没有注册过账号,点击注册按钮输入账号、密码、邮箱即可注册,注册后可登录进入系统,系统分为首页、预订、我的三大模块,下面具体详细说说三大模块功能说明

1. 首页 首页显示旅游备忘或旅游日志列表,也可以输入关键字查询内容,点击下面加号增加旅游备忘或旅游日志,输入内容点击保存即可在首页列表刷新显示,数据保存至本地SQLite数据库中,点击或长按首页列表可进行编辑或删除;;

2. 预订 此页面主要是快捷查询小工具页面,如查攻略、查出行车票、查地图、查酒店、查美食、查天气,这些查询都是webview内嵌页面,具体网址可在代码中替换;

3. 我的 可修改登录密码及退出登录;

项目截图

实现原理

布局文件activity_main.xml:

			<?xml version="1.0" encoding="utf-8"?>
			<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
				android:layout_width="match_parent"
				android:layout_height="match_parent">

				<FrameLayout
					android:id="@+id/framelayout"
					android:layout_width="match_parent"
					android:layout_height="match_parent"
					android:background="@color/white"
					android:layout_above="@id/div"/>

				<View
					android:id="@+id/div"
					android:layout_width="match_parent"
					android:layout_height="1dp"
					android:background="@color/color_f4f4f4"
					android:layout_above="@id/layout_tab"/>

				<LinearLayout
					android:id="@+id/layout_tab"
					android:layout_width="match_parent"
					android:layout_height="wrap_content"
					android:layout_alignParentBottom="true"
					android:background="#ffffff">

					<LinearLayout
						android:id="@+id/tab1"
						android:layout_width="0dp"
						android:layout_height="match_parent"
						android:layout_weight="1"
						android:orientation="vertical"
						android:gravity="center"
						android:paddingTop="6dp"
						android:paddingBottom="6dp">
						<ImageView
							android:id="@+id/img1"
							android:layout_width="20dp"
							android:layout_height="23dp"/>
						<TextView
							android:id="@+id/tv1"
							android:layout_width="wrap_content"
							android:layout_height="wrap_content"
							android:layout_marginTop="2dp"
							android:text="首页"
							android:textSize="12dp"/>
					</LinearLayout>
					
					<LinearLayout
						android:id="@+id/tab1_1"
						android:layout_width="0dp"
						android:layout_height="match_parent"
						android:layout_weight="1"
						android:orientation="vertical"
						android:gravity="center"
						android:paddingTop="6dp"
						android:paddingBottom="6dp">
						<ImageView
							android:id="@+id/img1_1"
							android:layout_width="20dp"
							android:layout_height="23dp"/>
						<TextView
							android:id="@+id/tv1_1"
							android:layout_width="wrap_content"
							android:layout_height="wrap_content"
							android:layout_marginTop="2dp"
							android:text="预订"
							android:textSize="12dp"/>
					</LinearLayout>
					
					<LinearLayout
						android:id="@+id/tab2"
						android:layout_width="0dp"
						android:layout_height="match_parent"
						android:layout_weight="1"
						android:orientation="vertical"
						android:gravity="center"
						android:paddingTop="6dp"
						android:paddingBottom="6dp">
						<ImageView
							android:id="@+id/img2"
							android:layout_width="20dp"
							android:layout_height="23dp"/>
						<TextView
							android:id="@+id/tv2"
							android:layout_width="wrap_content"
							android:layout_height="wrap_content"
							android:layout_marginTop="2dp"
							android:text="我的"
							android:textSize="12dp"/>
					</LinearLayout>
				</LinearLayout>
			</RelativeLayout>
	  
			/**
			 * 新增/编辑记事板视图
			 */
			public class AddActivity extends Activity {

				private TextView tv_datetime;
				private EditText editText;
				private ImageView img_delete;
				private int model;
				private Note note;

				@Override
				protected void onCreate(Bundle savedInstanceState) {
					super.onCreate(savedInstanceState);
					setContentView(R.layout.act_add);
					editText = findViewById(R.id.edittext);
					tv_datetime = findViewById(R.id.tv_datetime);
					img_delete = findViewById(R.id.img_delete);
					tv_datetime.setText(ToolUtils.getCurDateTime());
					findViewById(R.id.layout_back).setOnClickListener(new View.OnClickListener() {
						@Override
						public void onClick(View v) {
							finish();
						}
					});
					img_delete.setOnClickListener(new View.OnClickListener() {
						@Override
						public void onClick(View v) {
							AppDBHelp.getInstance(AddActivity.this).deleteNote(note.getId());
							Toast.makeText(AddActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
							// 通知首页更新相关数据
							EventBus.getDefault().post("homeRefresh");
							finish();
						}
					});
					findViewById(R.id.btn_save).setOnClickListener(new View.OnClickListener() {
						@Override
						public void onClick(View v) {
							if (!TextUtils.isEmpty(editText.getText().toString())) {
								if (note == null) {
									note = new Note();
									note.setUid(SPHelper.getInstance(AddActivity.this).getUserId());
								}
								note.setContent(editText.getText().toString());
								note.setDate(ToolUtils.getCurDate());
								if (model == 0) {
									AppDBHelp.getInstance(AddActivity.this).saveNote(note);
									Toast.makeText(AddActivity.this, "新增成功", Toast.LENGTH_SHORT).show();
								} else {
									AppDBHelp.getInstance(AddActivity.this).updateNote(note);
									Toast.makeText(AddActivity.this, "编辑成功", Toast.LENGTH_SHORT).show();
								}
								// 通知首页更新相关数据
								EventBus.getDefault().post("homeRefresh");
								finish();
							} else {
								Toast.makeText(AddActivity.this, "请输入记事板内容", Toast.LENGTH_SHORT).show();
							}
						}
					});

					// 如果有数据传过来,那就是编辑,否则是新增
					Intent intent = getIntent();
					Serializable s = intent.getSerializableExtra("note");
					if (s != null) {
						model = 1;
						note = (Note) s;
						((TextView) findViewById(R.id.tv_title)).setText("编 辑");
						editText.setText(note.getContent());
						img_delete.setVisibility(View.VISIBLE);
					}
				}
			}
	  

购买套餐

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

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

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

Android学习小站

Q Q:1095817610

微信:jx-helu

邮箱:1095817610@qq.com

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