diff --git a/src/cyxgroup-foodmenu/.gitignore b/src/cyxgroup-foodmenu/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/src/cyxgroup-foodmenu/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/src/cyxgroup-foodmenu/.idea/.gitignore b/src/cyxgroup-foodmenu/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/src/cyxgroup-foodmenu/.idea/.name b/src/cyxgroup-foodmenu/.idea/.name new file mode 100644 index 0000000..563ae42 --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/.name @@ -0,0 +1 @@ +MindCard \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/compiler.xml b/src/cyxgroup-foodmenu/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/gradle.xml b/src/cyxgroup-foodmenu/.idea/gradle.xml new file mode 100644 index 0000000..6e5389e --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/misc.xml b/src/cyxgroup-foodmenu/.idea/misc.xml new file mode 100644 index 0000000..178f70c --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/5/e/5ebda0d136caa689c96859248a352d0bd126ba86 b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/5/e/5ebda0d136caa689c96859248a352d0bd126ba86 new file mode 100644 index 0000000..adf4028 --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/5/e/5ebda0d136caa689c96859248a352d0bd126ba86 @@ -0,0 +1,22 @@ + +> +java:S1604)"(Make this anonymous inner class a lambda( +C +java:S1604R"(Make this anonymous inner class a lambda( +C +java:S1604["(Make this anonymous inner class a lambda( +> +java:S16049"(Make this anonymous inner class a lambda(î +D +java:S1604"(Make this anonymous inner class a lambda( +D +java:S1604"(Make this anonymous inner class a lambda( +D +java:S1604"(Make this anonymous inner class a lambda( +> +java:S1604p"(Make this anonymous inner class a lambda(î +C +java:S1604g"(Make this anonymous inner class a lambda(̌ +m +java:S3776#"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.( +N java:S106H"9Replace this use of System.out or System.err by a logger.(׼ \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e new file mode 100644 index 0000000..e69de29 diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/f/a/fa8fec3d4ff518092843a840776ca342ebaba7bf b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/f/a/fa8fec3d4ff518092843a840776ca342ebaba7bf new file mode 100644 index 0000000..15ab48d --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/f/a/fa8fec3d4ff518092843a840776ca342ebaba7bf @@ -0,0 +1,19 @@ + +> +java:S1604L"(Make this anonymous inner class a lambda(î +> +java:S1604e"(Make this anonymous inner class a lambda(î +C +java:S1604z"(Make this anonymous inner class a lambda( +D +java:S1604"(Make this anonymous inner class a lambda( +> +java:S1604+"(Make this anonymous inner class a lambda(î +C +java:S1604("(Make this anonymous inner class a lambda( +? +java:S1604"(Make this anonymous inner class a lambda( +m +java:S3776 "RRefactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed.( +S java:S106\"9Replace this use of System.out or System.err by a logger.(㿢 +S java:S106s"9Replace this use of System.out or System.err by a logger.(㿢 \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/index.pb b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/index.pb new file mode 100644 index 0000000..ebd73ff --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/sonarlint/issuestore/index.pb @@ -0,0 +1,7 @@ + +P + app/src/main/AndroidManifest.xml,8\c\8c55c3ccc257e5907959013f99656e4c8ec3903e +p +@app/src/main/java/com/hbue/activity/EditImformationActivity.java,5\e\5ebda0d136caa689c96859248a352d0bd126ba86 +f +6app/src/main/java/com/hbue/activity/LoginActivity.java,f\a\fa8fec3d4ff518092843a840776ca342ebaba7bf \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/5/e/5ebda0d136caa689c96859248a352d0bd126ba86 b/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/5/e/5ebda0d136caa689c96859248a352d0bd126ba86 new file mode 100644 index 0000000..e69de29 diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e b/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/8/c/8c55c3ccc257e5907959013f99656e4c8ec3903e new file mode 100644 index 0000000..e69de29 diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/f/a/fa8fec3d4ff518092843a840776ca342ebaba7bf b/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/f/a/fa8fec3d4ff518092843a840776ca342ebaba7bf new file mode 100644 index 0000000..e69de29 diff --git a/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/index.pb b/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/index.pb new file mode 100644 index 0000000..ebd73ff --- /dev/null +++ b/src/cyxgroup-foodmenu/.idea/sonarlint/securityhotspotstore/index.pb @@ -0,0 +1,7 @@ + +P + app/src/main/AndroidManifest.xml,8\c\8c55c3ccc257e5907959013f99656e4c8ec3903e +p +@app/src/main/java/com/hbue/activity/EditImformationActivity.java,5\e\5ebda0d136caa689c96859248a352d0bd126ba86 +f +6app/src/main/java/com/hbue/activity/LoginActivity.java,f\a\fa8fec3d4ff518092843a840776ca342ebaba7bf \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/.gitignore b/src/cyxgroup-foodmenu/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/src/cyxgroup-foodmenu/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/build.gradle b/src/cyxgroup-foodmenu/app/build.gradle new file mode 100644 index 0000000..320b901 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/build.gradle @@ -0,0 +1,50 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdk 32 + + defaultConfig { + applicationId "com.hbue" + minSdk 23 + targetSdk 32 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + buildFeatures { + viewBinding true + } +} + +dependencies { + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1' + implementation 'androidx.navigation:navigation-fragment:2.3.5' + implementation 'androidx.navigation:navigation-ui:2.3.5' + //implementation 'com.android.support:support-v7:28.0.0' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + implementation 'org.litepal.guolindev:core:3.2.1' + implementation 'com.squareup.okhttp3:okhttp:3.4.1' + implementation 'com.google.code.gson:gson:2.8.5' + implementation 'com.squareup.okio:okio:1.13.0' + +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/proguard-rules.pro b/src/cyxgroup-foodmenu/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/release/output-metadata.json b/src/cyxgroup-foodmenu/app/release/output-metadata.json new file mode 100644 index 0000000..3bcc1fa --- /dev/null +++ b/src/cyxgroup-foodmenu/app/release/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.hbue", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/androidTest/java/com/hbue/ExampleInstrumentedTest.java b/src/cyxgroup-foodmenu/app/src/androidTest/java/com/hbue/ExampleInstrumentedTest.java new file mode 100644 index 0000000..996c1a0 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/androidTest/java/com/hbue/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.hbue; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.hbue", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/AndroidManifest.xml b/src/cyxgroup-foodmenu/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b8bdfa4 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/AndroidManifest.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/assets/litepal.xml b/src/cyxgroup-foodmenu/app/src/main/assets/litepal.xml new file mode 100644 index 0000000..d1dec3a --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/assets/litepal.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/EditImformationActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/EditImformationActivity.java new file mode 100644 index 0000000..5776943 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/EditImformationActivity.java @@ -0,0 +1,171 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.os.Looper; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.hbue.entity.Result; +import com.hbue.entity.User; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +/** + * 修改个人信息 + */ +public class EditImformationActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 + setContentView(R.layout.activity_edit_imformation); + //设置返回图标的功能 + ImageView backsetting = (ImageView) findViewById(R.id.backSetting2); + backsetting.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + //获取用户名 + SharedPreferences preferences = getSharedPreferences("data", MODE_PRIVATE); + String username = preferences.getString("username", ""); + //获取文本框对象 + TextView usernameEdit = (TextView) findViewById(R.id.update_username); + EditText nameEdit = (EditText) findViewById(R.id.update_name); + EditText phoneEdit =(EditText) findViewById(R.id.update_phone); + EditText ageEdit = (EditText) findViewById(R.id.update_age); + EditText sexEdit =(EditText) findViewById(R.id.update_sex); + //发送请求到服务器,回显数据 + new Thread(new Runnable() { + @Override + public void run() { + try { + OkHttpClient okHttpClient = new OkHttpClient(); + Request request = new Request.Builder(). + url("http://10.0.2.2:8080/mindcard/user/findByUsername?username=" + username) + .build(); + Response response = okHttpClient.newCall(request).execute(); + String json = response.body().string(); + Gson gson = new Gson(); + Result result = gson.fromJson(json, Result.class); + if (result.getCode()==0){ + //如果成功 + User user = gson.fromJson( result.getData().toString(),User.class); + System.out.println(user.toString()); + Looper.prepare();//防止报错 + usernameEdit.setText(username); + nameEdit.setText(user.getName()); + phoneEdit.setText(user.getPhone()); + ageEdit.setText(user.getAge()+""); + sexEdit.setText(user.getSex()+""); + Looper.loop();//防止报错 + }else{ + //失败则弹出提示 + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(EditImformationActivity.this, "回显数据失败", Toast.LENGTH_SHORT).show(); + } + }); + } + } catch (Exception e) { + e.printStackTrace(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(EditImformationActivity.this, "回显数据失败", Toast.LENGTH_SHORT).show(); + } + }); + } + } + }).start(); + + //设置提交按钮的功能 + Button updateButton = (Button) findViewById(R.id.updateButton); + updateButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //1.获取各组件的属性 + String name = nameEdit.getText().toString(); + String phone = phoneEdit.getText().toString(); + String sex = sexEdit.getText().toString(); + String age = ageEdit.getText().toString(); + if (sex.equals("男") || sex.equals("女")){ + new Thread(new Runnable() { + @Override + public void run() { + try { + //向服务器发送信息 + OkHttpClient okHttpClient = new OkHttpClient(); + FormBody.Builder builder = new FormBody.Builder(); + builder.add("username",username); + builder.add("name",name); + builder.add("phone",phone); + builder.add("sex",sex); + builder.add("age",age); + Request request = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/edit") + .post(builder.build()) + .build(); + Response response = okHttpClient.newCall(request).execute(); + String json = response.body().string(); + Gson gson = new Gson(); + Result result = gson.fromJson(json, Result.class); + if (result.getCode()==0){ + SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); + editor.putString("name", name); + editor.apply(); + Intent intent = new Intent(EditImformationActivity.this, SettingActivity.class); + startActivity(intent); + finish(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(EditImformationActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); + } + }); + }else{ + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(EditImformationActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); + } + }); + } + }catch (Exception e){ + e.printStackTrace(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(EditImformationActivity.this,"好像出问题了",Toast.LENGTH_SHORT).show(); + } + }); + } + } + }).start(); + }else{ + Toast.makeText(EditImformationActivity.this, "性别只能填男或女", Toast.LENGTH_SHORT).show(); + } + } + }); + + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/FeedbackActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/FeedbackActivity.java new file mode 100644 index 0000000..cc58cf2 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/FeedbackActivity.java @@ -0,0 +1,100 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.EditText; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.hbue.entity.Result; + +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +/** + * 意见反馈页面 + */ +public class FeedbackActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 + setContentView(R.layout.activity_feedback); + + View back = findViewById(R.id.feedback_back); + back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +// Intent intent = new Intent(FeedbackActivity.this, SettingActivity.class); +// startActivity(intent); + FeedbackActivity.this.finish(); + } + }); + + //获取提交按钮 + View submit = findViewById(R.id.submit_feedback); + submit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //获取编辑框内容 + EditText feedback_content = (EditText) findViewById(R.id.feedback_content); + String content = feedback_content.getText().toString(); + //如果内容不为空则提交 + if (content.length() != 0) { + new Thread(new Runnable() { + @Override + public void run() { + try { + OkHttpClient client = new OkHttpClient(); + FormBody.Builder builder = new FormBody.Builder(); + //从本地获取用户名 + SharedPreferences preferences = getSharedPreferences("data", MODE_PRIVATE); + String username = preferences.getString("username", ""); + builder.add("username", username); + builder.add("content", content); + //发送post请求 + Request request = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/feedback") + .post(builder.build()) + .build(); + Response response = client.newCall(request).execute(); + String json = response.body().string(); + Gson gson = new Gson(); + Result result = gson.fromJson(json, Result.class); + //跳转页面 + Intent intent = new Intent(FeedbackActivity.this, SettingActivity.class); + startActivity(intent); + finish(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(FeedbackActivity.this,result.getMsg(),Toast.LENGTH_SHORT).show(); + } + }); + } catch (Exception e) { + e.printStackTrace(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(FeedbackActivity.this,"好像出错了",Toast.LENGTH_SHORT).show(); + } + }); + } + } + }).start(); + } else { + Toast.makeText(FeedbackActivity.this, "内容为空无法提交", Toast.LENGTH_SHORT).show(); + } + } + }); + + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/GuideActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/GuideActivity.java new file mode 100644 index 0000000..7cf5326 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/GuideActivity.java @@ -0,0 +1,166 @@ +package com.hbue.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.Button; +import android.widget.ImageView; +import androidx.appcompat.app.AppCompatActivity; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; +import java.util.ArrayList; +import java.util.List; + +/* + * 需求变更-引导页 + */ +public class GuideActivity extends AppCompatActivity implements View.OnClickListener { + + private ViewPager mViewPager; + //容器 + private List mList = new ArrayList<>(); + private View view1, view2, view3, view4; + //小圆点 + private ImageView point1, point2, point3, point4; + //跳过 + private Button btn_back; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消界面的标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_guide); + initView(); + } + + //初始化View + private void initView() { + + point1 = (ImageView) findViewById(R.id.point1); + point2 = (ImageView) findViewById(R.id.point2); + point3 = (ImageView) findViewById(R.id.point3); + point4 = (ImageView) findViewById(R.id.point4); + + btn_back = (Button) findViewById(R.id.btn_back); + btn_back.setOnClickListener(this); + //设置默认图片 + setPointImg(true, false, false, false); + mViewPager = (ViewPager) findViewById(R.id.mViewPager); + view1 = View.inflate(this, R.layout.pager_item_one, null); + view2 = View.inflate(this, R.layout.pager_item_two, null); + view3 = View.inflate(this, R.layout.pager_item_three, null); + view4 = View.inflate(this, R.layout.pager_item_four, null); + view4.findViewById(R.id.btn_start).setOnClickListener(this); + + mList.add(view1); + mList.add(view2); + mList.add(view3); + mList.add(view4); + + //设置适配器 + mViewPager.setAdapter(new GuideAdapter()); + + //监听ViewPager滑动 + mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + //pager切换 + @Override + public void onPageSelected(int position) { + switch (position) { + case 0: + setPointImg(true, false, false, false); + btn_back.setVisibility(View.VISIBLE); + break; + case 1: + setPointImg(false, true, false, false); + btn_back.setVisibility(View.VISIBLE); + break; + case 2: + setPointImg(false, false, true, false); + btn_back.setVisibility(View.VISIBLE); + break; + case 3: + setPointImg(false, false, false, true); + btn_back.setVisibility(View.GONE); + break; + } + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); + + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_start: + case R.id.btn_back: + startActivity(new Intent(this, MenuActivity.class)); + finish(); + break; + } + } + + class GuideAdapter extends PagerAdapter { + + @Override + public int getCount() { + return mList.size(); + } + + @Override + public boolean isViewFromObject(View view, Object object) { + return view == object; + } + + @Override + public Object instantiateItem(ViewGroup container, int position) { + ((ViewPager) container).addView(mList.get(position)); + return mList.get(position); + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + ((ViewPager) container).removeView(mList.get(position)); + //super.destroyItem(container, position, object); + } + } + + //设置小圆点的选中效果 + private void setPointImg(boolean isCheck1, boolean isCheck2, boolean isCheck3, boolean isCheck4) { + if (isCheck1) { + point1.setBackgroundResource(R.drawable.point_on); + } else { + point1.setBackgroundResource(R.drawable.point_off); + } + + if (isCheck2) { + point2.setBackgroundResource(R.drawable.point_on); + } else { + point2.setBackgroundResource(R.drawable.point_off); + } + + if (isCheck3) { + point3.setBackgroundResource(R.drawable.point_on); + } else { + point3.setBackgroundResource(R.drawable.point_off); + } + + if (isCheck4) { + point4.setBackgroundResource(R.drawable.point_on); + } else { + point4.setBackgroundResource(R.drawable.point_off); + } + } +} diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/LoginActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/LoginActivity.java new file mode 100644 index 0000000..f02c64c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/LoginActivity.java @@ -0,0 +1,155 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.hbue.entity.Result; + +import org.litepal.LitePal; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class LoginActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消界面的标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_login); + + //获取登录按钮对象 + Button loginButton = (Button) findViewById(R.id.LoginButton); + loginButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + new Thread(new Runnable() { + @Override + public void run() { + try { + //获取文本框中的账号密码 + EditText usernameEdit = (EditText) findViewById(R.id.UserNameEdit); + EditText passWordEdit = (EditText) findViewById(R.id.PassWordEdit); + String username = usernameEdit.getText().toString(); + String password = passWordEdit.getText().toString(); + OkHttpClient client = new OkHttpClient(); + FormBody.Builder parms = new FormBody.Builder(); + parms.add("username", username); + parms.add("password", password); + Request request = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/login") + .post(parms.build()) + .build(); + Response response = client.newCall(request).execute(); + //使用gson将数据转换为result对象 + String data = response.body().string(); + Gson gson = new Gson(); + Result result = gson.fromJson(data, Result.class); + if (result.getCode() == 0) { + //如果响应码为0,代表登录成功 + Intent intent = new Intent(LoginActivity.this, GuideActivity.class); + //将登录状态改为true + SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); + editor.putBoolean("isLogin", true); + editor.putString("username", username); + editor.apply(); + startActivity(intent); + finish(); + //从服务器端同步收藏 + new Thread(new Runnable() { + @Override + public void run() { + try { + OkHttpClient okHttpClient = new OkHttpClient(); + Request request1 = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/getCollected?username=" + username) + .build(); + Response response1 = okHttpClient.newCall(request1).execute(); + String json = response1.body().string(); + Gson gson1 = new Gson(); + Result result1 = gson1.fromJson(json, Result.class); + //List> data1 = (List>) result1.getData(); + //System.out.println(data1); + Object obj = result1.getData(); + List> list = gson1.fromJson(obj.toString(), new TypeToken>>(){}.getType()); + System.out.println(list); + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + + + //从服务器端同步学习记录 + new Thread(new Runnable() { + @Override + public void run() { + try { + OkHttpClient okHttpClient = new OkHttpClient(); + Request request1 = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/getStudied?username=" + username) + .build(); + Response response1 = okHttpClient.newCall(request1).execute(); + String json = response1.body().string(); + Gson gson1 = new Gson(); + Result result1 = gson1.fromJson(json, Result.class); + Object obj = result1.getData(); + List> list = gson1.fromJson(obj.toString(), new TypeToken>>(){}.getType()); + System.out.println(list); + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } else { + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(LoginActivity.this, "账号或密码错误!", Toast.LENGTH_SHORT).show(); + } + }); + } + } catch (IOException e) { + runOnUiThread(new Runnable() { + @Override + public void run() { + e.printStackTrace(); + Toast.makeText(LoginActivity.this, "服务器未响应", Toast.LENGTH_SHORT).show(); + + } + }); + } + } + }).start(); + + } + }); + + //设置注册按钮的功能 + Button signup = (Button) findViewById(R.id.SignUpButton); + signup.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); + startActivity(intent); + } + }); + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainActivity.java new file mode 100644 index 0000000..af17ed4 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainActivity.java @@ -0,0 +1,56 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; + +/** + * 第一页 + * 首页 + */ +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消界面的标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_main); + //设置点击开始按钮进行跳转 + Button startbutton = (Button) findViewById(R.id.start); + startbutton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); + boolean isFirstUse = pref.getBoolean("isFirstUse", true); + //如果是第一次使用 + if (isFirstUse) { + //跳转至登录页面 + Intent intent1 = new Intent(MainActivity.this, LoginActivity.class); + startActivity(intent1); + finish(); + } else { + //不是第一次使用,先判断是否登录 + boolean isLogin = pref.getBoolean("isLogin", false); + if (isLogin) { +// Intent intent1 = new Intent(MainActivity.this, MainPageActivity.class); +// startActivity(intent1); + finish(); + }else{ + //跳转至登录页面 + Intent intent = new Intent(MainActivity.this, LoginActivity.class); + startActivity(intent); + finish(); + } + } + + } + }); + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainFragment.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainFragment.java new file mode 100644 index 0000000..6e1cc1c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MainFragment.java @@ -0,0 +1,55 @@ +package com.hbue.activity; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.google.android.material.bottomnavigation.BottomNavigationView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; + +import com.hbue.activity.databinding.ActivityBottomBinding; + +/** + * 无用暂留 + */ +public class MainFragment extends Fragment { + + //rivate ActivityBottomBinding binding; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.activity_main2, container, false); + return view; + } + +// @Override +// protected void onCreate(Bundle savedInstanceState) { +// super.onCreate(savedInstanceState); +// +// binding = ActivityBottomBinding.inflate(getLayoutInflater()); +// setContentView(binding.getRoot()); +// +// +// +// BottomNavigationView navView = findViewById(R.id.nav_view); +// // Passing each menu ID as a set of Ids because each +// // menu should be considered as top level destinations. +// AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder( +// R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications) +// .build(); +// NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_activity_bottom); +// NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); +// NavigationUI.setupWithNavController(binding.navView, navController); + //} + +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MenuActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MenuActivity.java new file mode 100644 index 0000000..9eb20af --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/MenuActivity.java @@ -0,0 +1,60 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.TextView; + +/** + * 选择词汇本 + */ +public class MenuActivity extends AppCompatActivity { + private TextView select_cet4; + private TextView select_cet6; + private TextView select_ky; + private TextView select_dbname; + private SharedPreferences.Editor editor; + private SharedPreferences pref; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_select_data_base); + //获取选择按钮的对象 + select_cet4 = (TextView) findViewById(R.id.select_cet4); + select_cet6 = (TextView) findViewById(R.id.select_cet6); + select_ky = (TextView) findViewById(R.id.select_ky); + select_dbname = (TextView) findViewById(R.id.selected_dbname); + editor = getSharedPreferences("data", MODE_PRIVATE).edit(); + /** + * 为词汇本设置事件 + */ + select_cet4.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + } + }); + select_cet6.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + } + }); + select_ky.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + } + }); + + /** + * 点击继续按钮后的功能 + */ + Button button_select = (Button) findViewById(R.id.button_select); + } + + +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/RegisterActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/RegisterActivity.java new file mode 100644 index 0000000..977d338 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/RegisterActivity.java @@ -0,0 +1,127 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.hbue.entity.Result; + +import java.io.IOException; + +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +/* + 注册页面 + */ +public class RegisterActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消界面的标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_register); + //设置返回登录按钮的功能 + Button backLoginButton = (Button) findViewById(R.id.BackLoginButton); + backLoginButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + + //设置注册按钮的功能 + Button signUpButton = (Button) findViewById(R.id.SignUpButton); + signUpButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + //获取文本框中的数据并进行校验 + EditText userNameEdit = (EditText) findViewById(R.id.UserNameEdit); + EditText passWordEdit = (EditText) findViewById(R.id.PassWordEdit); + EditText passWordAgainEdit = (EditText) findViewById(R.id.PassWordAgainEdit); + EditText phoneEdit = (EditText) findViewById(R.id.phoneEdit); + EditText nameEdit = (EditText) findViewById(R.id.nameEdit); + //获取内容 + String username = userNameEdit.getText().toString(); + String password = passWordEdit.getText().toString(); + String passwordAgain = passWordAgainEdit.getText().toString(); + String phone = phoneEdit.getText().toString(); + String name = nameEdit.getText().toString(); + + if (username.equals("") && password.equals("") && passwordAgain.equals("") && phone.equals("") && name.equals("")) { + Toast.makeText(RegisterActivity.this, "文本框不能为空!", Toast.LENGTH_SHORT).show(); + } else { + //判断两次密码输入是否相同 + if (!password.equals(passwordAgain)) { + Toast.makeText(RegisterActivity.this, "两次密码输入不相同!", Toast.LENGTH_SHORT).show(); + } else { + //向服务器发送请求 + new Thread(new Runnable() { + @Override + public void run() { + try { + OkHttpClient okHttpClient = new OkHttpClient(); + FormBody.Builder builder = new FormBody.Builder(); + builder.add("username", username); + builder.add("password", password); + builder.add("name", name); + builder.add("phone", phone); + Request request = new Request.Builder() + .url("http://10.0.2.2:8080/mindcard/user/register") + .post(builder.build()) + .build(); + Response response = okHttpClient.newCall(request).execute(); + String json = response.body().string(); + Gson gson = new Gson(); + Result result = gson.fromJson(json, Result.class); + if (result.getCode()==1){ + //如果失败 + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(RegisterActivity.this,result.getMsg(),Toast.LENGTH_SHORT).show(); + } + }); + }else{ + //注册成功 + runOnUiThread(new Runnable() { + @Override + public void run() { + //跳转至登录页 + Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); + startActivity(intent); + Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show(); + finish(); + } + }); + } + } catch (IOException e) { + e.printStackTrace(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(RegisterActivity.this, "服务器未响应", Toast.LENGTH_SHORT).show(); + } + }); + } + } + }).start(); + } + } + + } + }); + + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SettingActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SettingActivity.java new file mode 100644 index 0000000..220fdc2 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SettingActivity.java @@ -0,0 +1,97 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.AdapterView; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; + +import com.hbue.adapter.SettingAdapter; + +import java.util.ArrayList; +import java.util.List; + +/** + * 其他功能的活动 + */ +public class SettingActivity extends AppCompatActivity { + + private static List list = new ArrayList<>(); + + static { + list.add("修改个人信息"); + list.add("反馈问题"); + list.add("同步数据"); + list.add("退出登录"); + } + + // private String[] settings = { +// "更换单词本","已学习","收藏","待复习","学习历程" +// }; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消界面的标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_setting); + SettingAdapter settingAdapter = new SettingAdapter(SettingActivity.this, R.layout.settinglist_item, list); + ListView listView = (ListView) findViewById(R.id.setting_list); + listView.setAdapter(settingAdapter); + //设置当前正在使用的用户姓名 + TextView name = (TextView) findViewById(R.id.name); + SharedPreferences preferences = getSharedPreferences("data", MODE_PRIVATE); + String s = preferences.getString("name", "未登录"); + name.setText(s); + + ImageView backhome = (ImageView) findViewById(R.id.backhome); + backhome.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + SettingActivity.this.finish(); + } + }); + //设置listItem的各选项的单击功能 + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + String s = list.get(i); + switch (s) { + case "反馈问题": + Intent intent4 = new Intent(SettingActivity.this, FeedbackActivity.class); + startActivity(intent4);//跳转到反馈页面 + break; + case "同步数据": + Intent intent7 = new Intent(SettingActivity.this, SyncActivity.class); + startActivity(intent7); + break; + case "修改个人信息": + Intent intent6 = new Intent(SettingActivity.this, EditImformationActivity.class); + startActivity(intent6); + break; + case "退出登录": + //退出登录 + SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); + editor.putBoolean("isLogin", false); + editor.putString("username", ""); + editor.putString("name", "未登录"); + editor.apply(); + //跳转会登录页 + Intent intent5 = new Intent(SettingActivity.this, LoginActivity.class); + startActivity(intent5); + finish(); + break; + default: + Toast.makeText(SettingActivity.this, "好像出问题啦!", Toast.LENGTH_SHORT).show(); + break; + } + } + }); + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SyncActivity.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SyncActivity.java new file mode 100644 index 0000000..a649c96 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/SyncActivity.java @@ -0,0 +1,54 @@ +package com.hbue.activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.hbue.entity.Result; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.litepal.LitePal; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +/** + * 同步数据功能 + */ +public class SyncActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //取消标题栏 + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_sync); + //设置返回图标的功能 + ImageView backsetting = (ImageView) findViewById(R.id.backSetting3); + backsetting.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + finish(); + } + }); + //将学习记录和收藏信息同步到服务器 + SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); + String username = pref.getString("username", "");//用户名 + + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardFragment.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardFragment.java new file mode 100644 index 0000000..be12f60 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardFragment.java @@ -0,0 +1,46 @@ +package com.hbue.activity.ui.dashboard; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.hbue.activity.R; +import com.hbue.activity.databinding.FragmentDashboardBinding; + +public class DashboardFragment extends Fragment { + + private DashboardViewModel dashboardViewModel; + private FragmentDashboardBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + dashboardViewModel = + new ViewModelProvider(this).get(DashboardViewModel.class); + + binding = FragmentDashboardBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textDashboard; + dashboardViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardViewModel.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardViewModel.java new file mode 100644 index 0000000..876ba2c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/dashboard/DashboardViewModel.java @@ -0,0 +1,19 @@ +package com.hbue.activity.ui.dashboard; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class DashboardViewModel extends ViewModel { + + private MutableLiveData mText; + + public DashboardViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is dashboard fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeFragment.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeFragment.java new file mode 100644 index 0000000..e3bf1b1 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeFragment.java @@ -0,0 +1,46 @@ +package com.hbue.activity.ui.home; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.hbue.activity.R; +import com.hbue.activity.databinding.FragmentHomeBinding; + +public class HomeFragment extends Fragment { + + private HomeViewModel homeViewModel; + private FragmentHomeBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + homeViewModel = + new ViewModelProvider(this).get(HomeViewModel.class); + + binding = FragmentHomeBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textHome; + homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeViewModel.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeViewModel.java new file mode 100644 index 0000000..8c1f686 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/home/HomeViewModel.java @@ -0,0 +1,19 @@ +package com.hbue.activity.ui.home; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class HomeViewModel extends ViewModel { + + private MutableLiveData mText; + + public HomeViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is home fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsFragment.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsFragment.java new file mode 100644 index 0000000..793cc65 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsFragment.java @@ -0,0 +1,46 @@ +package com.hbue.activity.ui.notifications; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.hbue.activity.R; +import com.hbue.activity.databinding.FragmentNotificationsBinding; + +public class NotificationsFragment extends Fragment { + + private NotificationsViewModel notificationsViewModel; + private FragmentNotificationsBinding binding; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + notificationsViewModel = + new ViewModelProvider(this).get(NotificationsViewModel.class); + + binding = FragmentNotificationsBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + final TextView textView = binding.textNotifications; + notificationsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsViewModel.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsViewModel.java new file mode 100644 index 0000000..28f623f --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/activity/ui/notifications/NotificationsViewModel.java @@ -0,0 +1,19 @@ +package com.hbue.activity.ui.notifications; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class NotificationsViewModel extends ViewModel { + + private MutableLiveData mText; + + public NotificationsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is notifications fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/adapter/SettingAdapter.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/adapter/SettingAdapter.java new file mode 100644 index 0000000..3eb845c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/adapter/SettingAdapter.java @@ -0,0 +1,38 @@ +package com.hbue.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.hbue.activity.R; + +import java.util.List; + +/** + * 设置项适配器 + */ +public class SettingAdapter extends ArrayAdapter { + private int resourceId; + + public SettingAdapter(@NonNull Context context, int resource, @NonNull List objects) { + super(context, resource, objects); + resourceId = resource; + } + + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + String item = getItem(position); + View view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false); + TextView settingName = (TextView) view.findViewById(R.id.setting_name); + settingName.setText(item); + return view; + } +} diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/Result.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/Result.java new file mode 100644 index 0000000..abc5306 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/Result.java @@ -0,0 +1,45 @@ +package com.hbue.entity; + +/** + * 结果封装类 + */ +public class Result { + private String msg; //结果 + private int code; //结果码,0为成功,1为失败 + private Object data; //返回的具体数据 + + public Result(String msg, int code) { + this.msg = msg; + this.code = code; + } + + public Result(String msg, int code, Object data) { + this.msg = msg; + this.code = code; + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } +} diff --git a/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/User.java b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/User.java new file mode 100644 index 0000000..be3f401 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/java/com/hbue/entity/User.java @@ -0,0 +1,82 @@ +package com.hbue.entity; + +/** + * 用户类 + */ +public class User { + private String username; + private String password; + private String name; + private String sex; + private Integer age; + private String phone; + + public User(String username, String password, String name, String sex, Integer age, String phone) { + this.username = username; + this.password = password; + this.name = name; + this.sex = sex; + this.age = age; + this.phone = phone; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + @Override + public String toString() { + return "User{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + ", name='" + name + '\'' + + ", sex='" + sex + '\'' + + ", age=" + age + + ", phone='" + phone + '\'' + + '}'; + } +} diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/bac.jpg b/src/cyxgroup-foodmenu/app/src/main/res/drawable/bac.jpg new file mode 100644 index 0000000..7c270e6 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/bac.jpg differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/back.jpg b/src/cyxgroup-foodmenu/app/src/main/res/drawable/back.jpg new file mode 100644 index 0000000..34ce42f Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/back.jpg differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/backlast.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/backlast.png new file mode 100644 index 0000000..8cca7ce Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/backlast.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/book.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/book.png new file mode 100644 index 0000000..a0071d4 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/book.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_bg.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_bg.xml new file mode 100644 index 0000000..0ad5b7e --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_bg.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_select_db.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_select_db.xml new file mode 100644 index 0000000..c575d01 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/button_select_db.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/collect.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/collect.png new file mode 100644 index 0000000..a308770 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/collect.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/collected.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/collected.png new file mode 100644 index 0000000..16980cf Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/collected.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/enter.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/enter.png new file mode 100644 index 0000000..56b59f4 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/enter.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp.xml new file mode 100644 index 0000000..b327214 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp2.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp2.xml new file mode 100644 index 0000000..026c07c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp2.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp3.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp3.xml new file mode 100644 index 0000000..368f4c4 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp3.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp4.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp4.xml new file mode 100644 index 0000000..0481334 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/et_sharp4.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/fail.jpg b/src/cyxgroup-foodmenu/app/src/main/res/drawable/fail.jpg new file mode 100644 index 0000000..d7a64ab Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/fail.jpg differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide01.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide01.png new file mode 100644 index 0000000..05c2ddc Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide01.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide02.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide02.png new file mode 100644 index 0000000..8af1b68 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide02.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide03.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide03.png new file mode 100644 index 0000000..86ae673 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide03.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide04.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide04.png new file mode 100644 index 0000000..48ce869 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/guide04.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_dashboard_black_24dp.xml new file mode 100644 index 0000000..16de195 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_dashboard_black_24dp.xml @@ -0,0 +1,11 @@ + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_home_black_24dp.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_home_black_24dp.xml new file mode 100644 index 0000000..d7e5733 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_home_black_24dp.xml @@ -0,0 +1,10 @@ + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_launcher_background.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 0000000..78b75c3 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/moon.jpg b/src/cyxgroup-foodmenu/app/src/main/res/drawable/moon.jpg new file mode 100644 index 0000000..d26210b Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/moon.jpg differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/peaple.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/peaple.png new file mode 100644 index 0000000..4831647 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/peaple.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/people.jpg b/src/cyxgroup-foodmenu/app/src/main/res/drawable/people.jpg new file mode 100644 index 0000000..16f5fa5 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/people.jpg differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_off.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_off.png new file mode 100644 index 0000000..a65e5ff Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_off.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_on.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_on.png new file mode 100644 index 0000000..8e27333 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/point_on.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/setting.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/setting.png new file mode 100644 index 0000000..26edd90 Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/setting.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/shape_jump.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/shape_jump.xml new file mode 100644 index 0000000..f454e55 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/shape_jump.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/startbutton.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/startbutton.xml new file mode 100644 index 0000000..2f4390b --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/startbutton.xml @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_button.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_button.xml new file mode 100644 index 0000000..3ed5b45 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_button.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_edit.xml b/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_edit.xml new file mode 100644 index 0000000..0df7573 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/drawable/translucent_edit.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/drawable/trumpet.png b/src/cyxgroup-foodmenu/app/src/main/res/drawable/trumpet.png new file mode 100644 index 0000000..e1adf1a Binary files /dev/null and b/src/cyxgroup-foodmenu/app/src/main/res/drawable/trumpet.png differ diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom.xml new file mode 100644 index 0000000..0ba0739 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom2.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom2.xml new file mode 100644 index 0000000..0ba0739 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_bottom2.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_collect.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_collect.xml new file mode 100644 index 0000000..c7a6c0d --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_collect.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_edit_imformation.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_edit_imformation.xml new file mode 100644 index 0000000..ad1834d --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_edit_imformation.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_feedback.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_feedback.xml new file mode 100644 index 0000000..ba8deec --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_feedback.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_guide.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_guide.xml new file mode 100644 index 0000000..ad094ad --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_guide.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_plan.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_plan.xml new file mode 100644 index 0000000..c712a7a --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_plan.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_practice.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_practice.xml new file mode 100644 index 0000000..9cfafc0 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_practice.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_recite.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_recite.xml new file mode 100644 index 0000000..6032410 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_recite.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_register.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_register.xml new file mode 100644 index 0000000..a2ff78c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_register.xml @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_setting.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_setting.xml new file mode 100644 index 0000000..1167dfa --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_setting.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_show_word.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_show_word.xml new file mode 100644 index 0000000..b87463c --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_show_word.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_sync.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_sync.xml new file mode 100644 index 0000000..5b34e01 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_sync.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_test.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_test.xml new file mode 100644 index 0000000..550a399 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/activity_test.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_dashboard.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_dashboard.xml new file mode 100644 index 0000000..166ab0e --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_dashboard.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_home.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 0000000..f3d9b08 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_notifications.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_notifications.xml new file mode 100644 index 0000000..d417935 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/fragment_notifications.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/cyxgroup-foodmenu/app/src/main/res/layout/pager_item_four.xml b/src/cyxgroup-foodmenu/app/src/main/res/layout/pager_item_four.xml new file mode 100644 index 0000000..0d3cb96 --- /dev/null +++ b/src/cyxgroup-foodmenu/app/src/main/res/layout/pager_item_four.xml @@ -0,0 +1,21 @@ + + + +