diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..603b140
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.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
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..0786a22
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Activity_FragmentTabHost
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..a2d7c21
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..a5f05cd
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..bdd9278
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..458a485
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,51 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 31
+ buildToolsVersion "30.0.2"
+
+ defaultConfig {
+ applicationId "ee.example.activity_fragmenttabhost"
+ minSdkVersion 16
+ targetSdkVersion 31
+ 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
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: "libs", include: ["*.jar"])
+ implementation 'androidx.appcompat:appcompat:1.2.0'
+ implementation 'com.google.android.material:material:1.3.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.2'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+
+ implementation 'com.youth.banner:banner:1.4.10' //图片轮播最新版本
+//图片轮播框架
+
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
+ //recyclerview
+ implementation 'androidx.recyclerview:recyclerview:1.1.0'
+ //viewpager2
+ implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
+
+ implementation 'com.qmuiteam:qmui:1.1.2'
+
+ implementation 'com.android.support:recyclerview-v7:30.0.0'
+}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/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/app/src/androidTest/java/ee/example/activity_fragmenttabhost/ExampleInstrumentedTest.java b/app/src/androidTest/java/ee/example/activity_fragmenttabhost/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..7f1089b
--- /dev/null
+++ b/app/src/androidTest/java/ee/example/activity_fragmenttabhost/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package ee.example.activity_fragmenttabhost;
+
+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("ee.example.activity_fragmenttabhost", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..53ea08a
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/Content.java b/app/src/main/java/ee/example/activity_fragmenttabhost/Content.java
new file mode 100644
index 0000000..514b856
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/Content.java
@@ -0,0 +1,34 @@
+package ee.example.activity_fragmenttabhost;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class Content extends AppCompatActivity {
+ private ImageView imageView1;
+ private TextView textView1,textView2;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_content);
+ intidata();
+ if(Data.sat_con==0){
+ imageView1.setImageResource(R.drawable.jinianguan);
+ textView1.setText(R.string.con1);
+ textView2.setText(R.string.con11);
+ }
+ else if(Data.sat_con==1){
+ imageView1.setImageResource(R.drawable.jinian2);
+ textView1.setText(R.string.con2);
+ textView2.setText(R.string.con22);
+ }
+ }
+
+ private void intidata(){
+ imageView1=(ImageView)findViewById(R.id.conImage1);
+ textView1=findViewById(R.id.conText1);
+ textView2=findViewById(R.id.conText2);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/Data.java b/app/src/main/java/ee/example/activity_fragmenttabhost/Data.java
new file mode 100644
index 0000000..53bc337
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/Data.java
@@ -0,0 +1,39 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.os.Bundle;
+
+import java.util.ArrayList;
+import java.util.List;
+import android.os.Bundle;
+import android.view.View;
+
+public class Data {
+
+ public static Boolean sta_dl=true;
+ public static Boolean sta_np=false;
+ public static String sta_name;
+ public static String sta_password;
+ public static int sat_con=0;
+ public static ArrayList images = new ArrayList();
+ public static void initView()
+ {
+
+
+ images.add(R.drawable.fj1);
+ images.add(R.drawable.fj2);
+ images.add(R.drawable.fj3);
+ images.add(R.drawable.fj4);
+ images.add(R.drawable.fj5);
+
+
+
+
+ /*imageTitle.add("西柏坡");
+ imageTitle.add("2");
+ imageTitle.add("3");
+ imageTitle.add("4");
+ imageTitle.add("5");
+ imageTitle.add("6");*/
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/Data2.java b/app/src/main/java/ee/example/activity_fragmenttabhost/Data2.java
new file mode 100644
index 0000000..f018d66
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/Data2.java
@@ -0,0 +1,34 @@
+package ee.example.activity_fragmenttabhost;
+
+public class Data2 {
+
+ private String new_title;
+ private String new_content;
+ private String content_title;
+
+
+
+ public Data2(String new_title,String content_title, String new_content) {
+ this.new_title = new_title;
+ this.new_content = new_content;
+ this.content_title = content_title;
+ }
+
+ public String getNew_title() {
+ return new_title;
+ }
+ public String getContent_title() {
+ return content_title;
+ }
+ public String getNew_content() {
+ return new_content;
+ }
+
+ public void setNew_title(String new_title) {
+ this.new_title = new_title;
+ }
+
+ public void setNew_content(String new_content) {
+ this.new_content = new_content;
+ }
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/DataBaseHelper.java b/app/src/main/java/ee/example/activity_fragmenttabhost/DataBaseHelper.java
new file mode 100644
index 0000000..324d17b
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/DataBaseHelper.java
@@ -0,0 +1,38 @@
+package ee.example.activity_fragmenttabhost;
+
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+import androidx.annotation.Nullable;
+
+public class DataBaseHelper extends SQLiteOpenHelper {
+ private static DataBaseHelper instance;
+ private static String CREATE_USERS="create table users"
+ +"(id integer primary key autoincrement,"
+ +"name text,"
+ +"password text)";
+
+
+ public DataBaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
+ super(context, name, factory, version);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase sqLiteDatabase) {
+
+ sqLiteDatabase.execSQL(CREATE_USERS);
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
+
+ }
+
+ public static DataBaseHelper getInstance(Context context){
+ if(instance==null)
+ instance =new DataBaseHelper(context,"travel.db",null,2);
+ return instance;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/Datas.java b/app/src/main/java/ee/example/activity_fragmenttabhost/Datas.java
new file mode 100644
index 0000000..aa78bd9
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/Datas.java
@@ -0,0 +1,43 @@
+package ee.example.activity_fragmenttabhost;
+
+public class Datas {
+ public static int[] icons = {
+ R.drawable.bishu,
+ R.drawable.chengde,
+ R.drawable.fj1,
+ R.drawable.fj5,
+ R.drawable.fj2,
+ R.drawable.fj3,
+ R.drawable.fj4,
+ R.drawable.fj6,
+ R.drawable.fj7,
+ R.drawable.fj8,
+ R.drawable.fj9,
+ R.drawable.fj10,
+ R.drawable.fj11,
+ R.drawable.fj12,
+ R.drawable.fj13,
+ R.drawable.fj14,
+ R.drawable.fj15,
+ };
+ public static String[] title = {
+ "承德避暑山庄",
+ "承德苏联红军烈士纪念碑",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+ "景点",
+
+ };
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/GlideImageLoader.java b/app/src/main/java/ee/example/activity_fragmenttabhost/GlideImageLoader.java
new file mode 100644
index 0000000..4132189
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/GlideImageLoader.java
@@ -0,0 +1,17 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.content.Context;
+import android.widget.ImageView;
+
+import com.bumptech.glide.Glide;
+import com.youth.banner.loader.ImageLoader;
+
+
+public class GlideImageLoader extends ImageLoader {
+ @Override
+ public void displayImage(Context context, Object path, ImageView imageView) {
+ //Glide 加载图片简单用法
+ Glide.with(context).load(path).into(imageView);
+ }
+}
+
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/ItemBean.java b/app/src/main/java/ee/example/activity_fragmenttabhost/ItemBean.java
new file mode 100644
index 0000000..f6bb776
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/ItemBean.java
@@ -0,0 +1,6 @@
+package ee.example.activity_fragmenttabhost;
+
+public class ItemBean {
+ public int icon;//图片资源
+ public String title;//标题
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/LoginActivity.java b/app/src/main/java/ee/example/activity_fragmenttabhost/LoginActivity.java
new file mode 100644
index 0000000..d2790ec
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/LoginActivity.java
@@ -0,0 +1,165 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Build;
+import android.os.Bundle;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.RequiresApi;
+
+
+public class LoginActivity extends Activity {
+ private EditText name;
+ private EditText password;
+ private TextView jum;
+ private Button zhuce;
+ private Button denglu;
+ private CheckBox cb1;
+ private CheckBox cb2;
+ static private String SPdata="SPdata";
+ static private String SPname="name";
+ static private String SPpassword="password";
+ static private String SPauto="auto";
+ static private String spname;
+ static private String spassword;
+ static private boolean spauto;
+ private DataBaseHelper dbHelper;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ //setStatusBar();
+ //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.login);
+ intiview();
+ dbHelper=DataBaseHelper.getInstance(this);
+ spauto=false;
+ checkIfRemember();
+ if(Data.sta_dl==true)
+ if(spauto==true) {
+ Intent intent=new Intent(LoginActivity.this,MainActivity.class);
+ Data.sta_np=true;
+ startActivity(intent);
+ finish();
+ }
+ jum.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent=new Intent(LoginActivity.this,MainActivity.class);
+ startActivity(intent);
+ Data.sta_np=false;
+ finish();
+ }
+ });
+
+ zhuce.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent=new Intent(LoginActivity.this, Regiter.class);
+ startActivity(intent);
+ }
+ });
+
+ denglu.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ SQLiteDatabase db=dbHelper.getWritableDatabase();
+ String Name=name.getText().toString();
+ String Password=password.getText().toString();
+ if(Name.equals("")){
+ Toast.makeText(LoginActivity.this,"账号不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else {
+ if(Password.equals("")){
+ Toast.makeText(LoginActivity.this,"密码不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else{
+ Cursor cursor;
+ cursor = db.rawQuery("select password from users where name=?",new String[]{Name});
+ if(cursor.moveToNext()){
+ @SuppressLint("Range")
+ String true_password = cursor.getString(cursor.getColumnIndex("password"));
+ cursor.close();
+ if(true_password.equals(Password)){
+ if(cb1.isChecked()){
+ if(cb2.isChecked()) {
+ spauto=true;
+ rememberMe(Name, Password,spauto);
+ Data.sta_dl=true;}
+ else { spauto=false ;rememberMe(Name,Password,spauto);} //将用户的帐号与密码存入SharedPreferences
+ }
+ else { spauto=false ;rememberMe(null,null,spauto);}
+ Toast.makeText(LoginActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
+ Intent intent=new Intent(LoginActivity.this,MainActivity.class);
+ Data.sta_np=true;
+ Data.sta_name=Name;
+ Data.sta_password=true_password;
+ startActivity(intent);
+ finish();
+ }
+ else Toast.makeText(LoginActivity.this,"密码错误,密码应为"+true_password,Toast.LENGTH_SHORT).show();
+ }
+ else Toast.makeText(LoginActivity.this,"无此账号,先去注册一个吧",Toast.LENGTH_SHORT).show();
+ cursor.close();
+ }
+ }
+ }
+ });
+
+
+ }
+
+ private void intiview(){
+ name=findViewById(R.id.main_zhanghao);
+ password=findViewById(R.id.main_mima);
+ zhuce=findViewById(R.id.main_zhuce);
+ denglu=findViewById(R.id.main_denglu);
+ jum=findViewById(R.id.tiaoguo);
+ cb1=findViewById(R.id.Check_Box1);
+ cb2=findViewById(R.id.Check_Box2);
+ }
+
+ public void checkIfRemember(){
+ SharedPreferences sp = getSharedPreferences(SPdata,MODE_PRIVATE); //获得SharedPreferences
+ spname = sp.getString(SPname, null); //取键值对中的帐号值
+ spassword = sp.getString(SPpassword, null); //取键值对中的密码值
+ spauto = sp.getBoolean(SPauto, false); //取键值对中的密码值
+ if(spname != null && spassword!= null){
+ Data.sta_name=spname;
+ Data.sta_password=spassword;
+ name.setText(spname); //给EditText控件赋帐号
+ password.setText(spassword); //给EditText控件赋密码
+ cb1.setChecked(true);
+ if(spauto==true) cb2.setChecked(true);
+ }
+ }
+
+ public void rememberMe(String name1,String password1,boolean auto1){
+ SharedPreferences sp = getSharedPreferences(SPdata,MODE_PRIVATE);
+ SharedPreferences.Editor editor = sp.edit(); //获得Editor
+ editor.putString(SPname, name1); //将用户的帐号存入Preferences
+ editor.putString(SPpassword, password1); //将密码存入Preferences
+ editor.putBoolean(SPauto , auto1);
+ editor.commit();
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ private void setStatusBar(){
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+//注意要清除 FLAG_TRANSLUCENT_STATUS flag
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ getWindow().setStatusBarColor(getResources().getColor(R.color.xml_color));//设置要显示的颜色(Color.TRANSPARENT为透明)
+ }
+
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/MainActivity.java b/app/src/main/java/ee/example/activity_fragmenttabhost/MainActivity.java
new file mode 100644
index 0000000..e1d348f
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/MainActivity.java
@@ -0,0 +1,85 @@
+package ee.example.activity_fragmenttabhost;
+
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentTabHost;
+
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.os.Bundle;
+import android.view.View;
+import android.view.Window;
+import android.widget.LinearLayout;
+import android.widget.TabHost;
+import android.widget.TextView;
+
+import android.view.WindowManager;
+
+
+public class MainActivity extends AppCompatActivity{
+ private static final String TAG = "MainActivity";
+
+ private Bundle mBundle = new Bundle();
+ private FragmentTabHost mTabHost;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ Data.initView();
+ setContentView(R.layout.activity_main);
+ Bundle mBundle = new Bundle();
+ mBundle.putString("tag", TAG);
+
+ //初始化tabHost
+ mTabHost = (FragmentTabHost) findViewById(R.id.tabhost);
+ //将tabHost和FrameLayout关联
+ mTabHost.setup(getApplicationContext(), getSupportFragmentManager(), R.id.tabcontent_page);
+
+ //添加tab和其对应的fragment
+ //addTab(标签,跳转的Fragment,传递参数的Bundle)
+ mTabHost.addTab(
+ getTabView(R.string.tab_home, R.drawable.shouye_2),
+ TabFragment_Home.class,
+ mBundle);
+ mTabHost.addTab(
+ getTabView(R.string.tab_find, R.drawable.faxian),
+
+ TabFragment_Find.class,
+ mBundle);
+
+ mTabHost.addTab(
+ getTabView(R.string.tab_community, R.drawable.shequ),
+ TabFragment_Community.class,
+ mBundle);
+ mTabHost.addTab(
+ getTabView(R.string.tab_me, R.drawable.wode_1),
+ TabFragment_Me.class,
+ mBundle);
+ //设置tabs之间的分隔线不显示
+ mTabHost.getTabWidget().setShowDividers(LinearLayout.SHOW_DIVIDER_NONE);
+
+
+ }
+ private TabHost.TabSpec getTabView(int textId, int imgId) {
+ String text = getResources().getString(textId);
+ Drawable drawable = getResources().getDrawable(imgId);
+ //必须设置图片大小,否则不显示
+ drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
+ View view_tabitem = getLayoutInflater().inflate(R.layout.item_tabbar, null);
+ TextView tv_item = (TextView) view_tabitem.findViewById(R.id.tv_item_tabbar);
+ tv_item.setText(text);
+ tv_item.setCompoundDrawables(null, drawable, null, null);
+ TabHost.TabSpec spec = mTabHost.newTabSpec(text).setIndicator(view_tabitem);
+ return spec;
+ }
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ private void setStatusBar(){
+ //getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+//注意要清除 FLAG_TRANSLUCENT_STATUS flag
+ //getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+ getWindow().setStatusBarColor(getResources().getColor(R.color.xml_color));//设置要显示的颜色(Color.TRANSPARENT为透明)
+ }
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/MainChangemima.java b/app/src/main/java/ee/example/activity_fragmenttabhost/MainChangemima.java
new file mode 100644
index 0000000..ad8a883
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/MainChangemima.java
@@ -0,0 +1,111 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+public class MainChangemima extends AppCompatActivity {
+ private SQLiteDatabase db;
+ private DataBaseHelper helper;
+ private EditText main_Gzhanghao;
+ private EditText main_Oldmima;
+ private EditText main_Newmima;
+ private Button main_Gquxiao;
+ private Button main_Gqueding;
+ static private String SPdata="SPdata";
+ static private String SPname="name";
+ static private String SPpassword="password";
+ static private String SPauto="auto";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main_changemima);
+ intiview();
+
+ main_Gquxiao.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent =new Intent(MainChangemima.this,MainActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ });
+
+ main_Gqueding.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String zhanghao=main_Gzhanghao.getText().toString();
+ String oldmima=main_Oldmima.getText().toString();
+ String newmima=main_Newmima.getText().toString();
+
+ if(zhanghao.equals("")){
+ Toast.makeText(MainChangemima.this,"账号不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else {
+ if(oldmima.equals("")&&newmima.equals("")){
+ Toast.makeText(MainChangemima.this,"新密码或旧密码不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else{
+ Cursor cursor;
+ cursor = db.rawQuery("select password from users where name=?",new String[]{zhanghao});
+ if(cursor.moveToNext()){
+ @SuppressLint("Range")
+ String true_password = cursor.getString(cursor.getColumnIndex("password"));
+ cursor.close();
+ if(true_password.equals(oldmima)){
+ db.execSQL("update users set password=? where name=?",new String[]{newmima,zhanghao});
+ Intent intent = new Intent(MainChangemima.this,MainActivity.class);
+ rememberMe(null, null, false);
+ startActivity(intent);
+ finish();
+
+ }
+ else Toast.makeText(MainChangemima.this,"旧密码错误"+true_password,Toast.LENGTH_SHORT).show();
+ }
+ else Toast.makeText(MainChangemima.this,"无此账号,先去注册一个吧",Toast.LENGTH_SHORT).show();
+ cursor.close();
+ }
+ }
+ }
+ });
+ }
+
+ private void intiview(){
+ helper=DataBaseHelper.getInstance(this);
+ db=helper.getWritableDatabase();
+ main_Gzhanghao=findViewById(R.id.main_gzhanghao);
+ main_Oldmima=findViewById(R.id.main_oldmima);
+ main_Newmima=findViewById(R.id.main_newmima);
+ main_Gquxiao=findViewById(R.id.main_gquxiao);
+ main_Gqueding=findViewById(R.id.main_gqueding);
+ }
+ public void rememberMe(String name1,String password1,boolean auto1){
+ SharedPreferences sp = getSharedPreferences(SPdata,MODE_PRIVATE);
+ SharedPreferences.Editor editor = sp.edit(); //获得Editor
+ editor.putString(SPname, name1); //将用户的帐号存入Preferences
+ editor.putString(SPpassword, password1); //将密码存入Preferences
+ editor.putBoolean(SPauto , auto1);
+ editor.commit();
+ }
+ @Override
+ //按两次back键退出
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ //获取按键并比较两次按back的时间大于2s不退出,否则退出
+ if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 0) {
+ Intent intent =new Intent(MainChangemima.this,MainActivity.class);
+ startActivity(intent);
+ finish();
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter.java b/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter.java
new file mode 100644
index 0000000..0f22e87
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter.java
@@ -0,0 +1,75 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+public class MyAdapter extends RecyclerView.Adapter {
+
+ private final List mData;
+ private OnItemClickListener mOnItemClickListener;
+ public MyAdapter(List data) {
+ this.mData = data;
+
+ }
+
+ @NonNull
+ @Override
+ public InnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = View.inflate(parent.getContext(), R.layout.item_stagger, null);
+ return new InnerHolder(view);
+ }
+ public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {
+ this.mOnItemClickListener = mOnItemClickListener;
+ }
+ public interface OnItemClickListener {
+ void onItemClick(View view, int position);
+ }
+ @Override
+ public void onBindViewHolder(@NonNull final InnerHolder holder, int position) {
+ holder.setData(mData.get(position),position);
+ if(mOnItemClickListener != null){
+ //为ItemView设置监听器
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ int position = holder.getLayoutPosition(); // 1
+ mOnItemClickListener.onItemClick(holder.itemView,position); // 2
+ }
+ });
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ //返回条目个数
+ if (mData != null) {
+ return mData.size();
+ }
+ return 0;
+ }
+
+ public class InnerHolder extends RecyclerView.ViewHolder {
+ private TextView mTitle;
+ private ImageView mIcon;
+
+ public InnerHolder(@NonNull View itemView) {
+ super(itemView);
+ mTitle = (TextView) itemView.findViewById(R.id.title);
+ mIcon = (ImageView) itemView.findViewById(R.id.icon);
+ }
+
+ public void setData(ItemBean itemBean,int position) {
+
+ mTitle.setText(itemBean.title);
+ mIcon.setImageResource(itemBean.icon);
+ }
+
+ }
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter2.java b/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter2.java
new file mode 100644
index 0000000..ef5a9d9
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/MyAdapter2.java
@@ -0,0 +1,56 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import java.util.List;
+
+public class MyAdapter2 extends BaseAdapter{
+
+ private List mData;
+ private Context mContext;
+
+ public MyAdapter2(List mData, Context mContext) {
+ this.mData = mData;
+ this.mContext = mContext;
+ }
+
+ @Override
+ public int getCount() {
+ return mData.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return null;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder viewHolder;
+ if(convertView == null){
+ convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item,parent,false);
+ viewHolder = new ViewHolder();
+ viewHolder.txt_item_title = (TextView) convertView.findViewById(R.id.txt_item_title);
+ convertView.setTag(viewHolder);
+ }else{
+ viewHolder = (ViewHolder) convertView.getTag();
+ }
+ viewHolder.txt_item_title.setText(mData.get(position).getNew_title());
+ return convertView;
+ }
+
+ private class ViewHolder{
+ TextView txt_item_title;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/New1.java b/app/src/main/java/ee/example/activity_fragmenttabhost/New1.java
new file mode 100644
index 0000000..8ae1785
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/New1.java
@@ -0,0 +1,84 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.os.Bundle;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import java.util.ArrayList;
+
+
+public class New1 extends AppCompatActivity {
+
+ private TextView txt_title;
+ private FrameLayout fl_content;
+ private Context mContext;
+ private ArrayList datas = null;
+ private FragmentManager fManager = null;
+ private long exitTime = 0;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main2);
+ mContext = New1.this;
+ fManager = getFragmentManager();
+ bindViews();
+
+ datas = new ArrayList();
+
+
+ for (int i = 1; i <= 20; i++) {
+ if(i == 1){
+ Data2 data1 = new Data2("承德避暑山庄" ,"承德避暑山庄" ,"避暑山庄,又称“热河行宫”、“承德离宫”。它从康熙四十二年(1703年)开始动工兴建,至乾隆五十七年(1792年)最后落成,历时89年。清代前中期的几位皇帝几乎每年都来这里消夏避暑,处理政务,通常是每年农历四、五月份来,九、十月份返回北京。避暑山庄实际上已成为清朝的第二政治中心。整个山庄占地564万平方米,山庄可分为宫殿区和苑景区两部分,宫殿区由正宫、松鹤斋、万壑松风和东宫四组建筑组成。苑景区又分为山区、湖区、平原区三部分。以山区面积最广,约占山庄总面积的70%多。山庄集全国园林精华于一园,具有南秀北雄的特点。\n" +
+ "\n" +
+ "清代山庄内共有亭子90座,堤桥29座,碑刻摩崖25处,假山叠石70余组,殿宇、楼堂、寺庙、亭台、塔阁等各种建筑120余组,总建筑面积达10万多平方米。康熙皇帝以4个字命名的36景和乾隆皇帝以3个字命名的36景最为著名,合称“避暑山庄72景”。康熙皇帝称赞这里是“自有山川开北极,天然风景胜西湖。”山庄宫墙长约10公里,因为它形似长城,承德人亲切地称它为“小长城”。宫墙外是仿全国各族著名庙宇而修建的皇家寺庙群,这些寺庙呈半圆形环绕在山庄-,形成众星拱月之势,象征着当时全国各民族紧紧围绕在清王朝统治中心的周围。随着岁月的流逝,朝代的变更,避暑山庄也历尽了沧桑。新中国成立后,山庄才得到了新生,现在是全国保存得最好、规模最大的皇家园林,是世界文化遗产、是中外驰名的旅游胜地。\n" +
+ "\n" +
+ "清朝初年,中国藏传佛教在我国蒙、藏地区(包括青海、新疆)势力强大,教徒信仰虔诚,佛经教义是蒙、-民的精神支柱。喇嘛教上层人物在政治上有效地控制着地方政权,经济上汇聚着大量财富,文化上掌握着经堂教院。清政府为加强对北疆的统治,巩固国家统一,对边疆各少数民族实行“怀柔”政策。“怀柔”政策的一个重要内容就是对蒙藏民族采取“因其教不易其俗”、“以习俗为治”的方针。乾隆说“兴黄教,即所以安众蒙古,所系非小,故不可不保护之”。反映了清统治者以顺应少数民族习俗、尊重蒙藏上层人物宗教信仰,来实现密切地方和中央政府的关系,巩固国家统一为目的的战略思想。\n" +
+ "\n" +
+ "避暑山庄自康熙四十七年(1708年)驻跸使用以后,皇帝每年秋狝(秋狝(xiǎn):中国古代在不同的季节打猎有不同的称呼。在春季称为春蒐;在夏季称为夏苗;在秋季称为秋狝;在冬季称为冬狩。)前后均要在此长期停住,消夏避暑,处理军政要务。由此而来的大批蒙藏等少数民族首领和外国使臣,每年都要到承德谒见皇帝,参加庆典。借此,清廷便在承德大兴土木,建造寺庙,为前来的上层政教人物提供瞻礼、膜拜等宗教活动场所,功能上同避暑山庄相辅相成,互为补遗。\n" +
+ " ");
+ datas.add(data1);}
+ Data2 data = new Data2("景点" + i,"景点"+i ,i + "~内容~~~~~~~~");
+ datas.add(data);
+
+
+ }
+ NewListFragment nlFragment = new NewListFragment(fManager, datas);
+ FragmentTransaction ft = fManager.beginTransaction();
+ ft.replace(R.id.fl_content, nlFragment);
+ ft.commit();
+ }
+
+
+ private void bindViews() {
+ txt_title = (TextView) findViewById(R.id.txt_title);
+ fl_content = (FrameLayout) findViewById(R.id.fl_content);
+ }
+
+
+ //点击回退键的处理:判断Fragment栈中是否有Fragment
+ //没,双击退出程序,否则像是Toast提示
+ //有,popbackstack弹出栈
+ @Override
+ public void onBackPressed() {
+ if (fManager.getBackStackEntryCount() == 0) {
+ if ((System.currentTimeMillis() - exitTime) > 2000) {
+ Toast.makeText(getApplicationContext(), "再按一次退出程序",
+ Toast.LENGTH_SHORT).show();
+ exitTime = System.currentTimeMillis();
+ } else {
+ super.onBackPressed();
+ }
+ } else {
+ fManager.popBackStack();
+ txt_title.setText("新闻列表");
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/NewContentFragment.java b/app/src/main/java/ee/example/activity_fragmenttabhost/NewContentFragment.java
new file mode 100644
index 0000000..2aeb0f5
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/NewContentFragment.java
@@ -0,0 +1,26 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.annotation.SuppressLint;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class NewContentFragment extends Fragment {
+
+ @SuppressLint("ValidFragment")
+ NewContentFragment() {
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fg_content, container, false);
+ TextView txt_content = (TextView) view.findViewById(R.id.txt_content);
+ //getArgument获取传递过来的Bundle对象
+ txt_content.setText(getArguments().getString("content"));
+ return view;
+ }
+
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/NewListFragment.java b/app/src/main/java/ee/example/activity_fragmenttabhost/NewListFragment.java
new file mode 100644
index 0000000..03ac51c
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/NewListFragment.java
@@ -0,0 +1,62 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.annotation.SuppressLint;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+
+@SuppressLint("ValidFragment")
+public class NewListFragment extends Fragment implements AdapterView.OnItemClickListener {
+ private FragmentManager fManager;
+ private ArrayList datas;
+ private ListView list_news;
+
+ public NewListFragment(FragmentManager fManager, ArrayList datas) {
+ this.fManager = fManager;
+ this.datas = datas;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fg_newlist, container, false);
+ list_news = (ListView) view.findViewById(R.id.list_news);
+ MyAdapter2 myAdapter = new MyAdapter2(datas, getActivity());
+ list_news.setAdapter((ListAdapter) myAdapter);
+ list_news.setOnItemClickListener(this);
+ return view;
+ }
+
+
+ @SuppressLint("ResourceType")
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ FragmentTransaction fTransaction = fManager.beginTransaction();
+ NewContentFragment ncFragment = new NewContentFragment();
+ Bundle bd = new Bundle();
+ bd.putString("content", datas.get(position).getNew_content());
+ ncFragment.setArguments(bd);
+ //获取Activity的控件
+ TextView txt_title = (TextView) getActivity().findViewById(R.id.txt_title);
+
+ txt_title.setText(datas.get(position).getNew_content());
+ txt_title.setText(datas.get(position).getContent_title());
+
+ //加上Fragment替换动画
+ fTransaction.setCustomAnimations(R.anim.fragment_slide_left_enter, R.anim.fragment_slide_left_exit);
+ fTransaction.replace(R.id.fl_content, ncFragment);
+ //调用addToBackStack将Fragment添加到栈中
+ fTransaction.addToBackStack(null);
+ fTransaction.commit();
+ }
+}
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/Regiter.java b/app/src/main/java/ee/example/activity_fragmenttabhost/Regiter.java
new file mode 100644
index 0000000..14d2ae0
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/Regiter.java
@@ -0,0 +1,68 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+public class Regiter extends AppCompatActivity {
+ private EditText name;
+ private EditText password;
+ private Button queren;
+ private Button quxiao;
+ private DataBaseHelper dbHelper;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.regiter);
+ dbHelper=DataBaseHelper.getInstance(this);
+ iniview();
+ quxiao.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ finish();
+ }
+ });
+ queren.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String Name= name.getText().toString();
+ String Password= password.getText().toString();
+ SQLiteDatabase db = dbHelper.getWritableDatabase();
+ if(Name.equals("")){
+ Toast.makeText(Regiter.this,"账号不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else {
+ if(Password.equals("")){
+ Toast.makeText(Regiter.this,"密码不能为空",Toast.LENGTH_SHORT).show();
+ }
+ else{
+ Cursor cursor = db.rawQuery("select name from users where name=? ", new String[]{Name});
+ //用户是否存在
+ if (cursor.moveToNext()){
+ Toast.makeText(Regiter.this,"该用户已经存在",Toast.LENGTH_SHORT).show();
+ cursor.close();
+ }else{
+ db.execSQL("insert into users(name,password)values(?,?)", new String[]{Name, Password});
+ Toast.makeText(Regiter.this,"注册成功",Toast.LENGTH_SHORT).show();
+ cursor.close();
+ finish();
+ }
+ }
+ }
+ }
+ });
+ }
+
+ private void iniview(){
+ name=findViewById(R.id.zhanghao);
+ password=findViewById(R.id.mima);
+ queren=findViewById(R.id.queding);
+ quxiao=findViewById(R.id.quxiao);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Community.java b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Community.java
new file mode 100644
index 0000000..5f9d2c4
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Community.java
@@ -0,0 +1,38 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+public class TabFragment_Community extends Fragment {
+ private static final String TAG = "TabFirstFragment";
+ protected View mView;
+ protected Context mContext;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ mContext = getActivity();
+ mView = inflater.inflate(R.layout.community, container, false);
+
+ return mView;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ }
+}
+
+
+
+
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Find.java b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Find.java
new file mode 100644
index 0000000..c9e2ae5
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Find.java
@@ -0,0 +1,92 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+import java.util.List;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import java.util.ArrayList;
+import android.widget.LinearLayout;
+
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+
+
+
+@SuppressLint("ValidFragment")
+public class TabFragment_Find extends Fragment {
+ private static final String TAG = "TabFirstFragment";
+ protected View mView;
+ MyAdapter adapter;
+ private RecyclerView mlist;//转换为成员变量
+ private List mdata;
+ protected Context mContext;
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ initData();
+ mlist = getActivity().findViewById(R.id.recycler_view);
+ showStagger();
+ adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
+ @Override
+ public void onItemClick(View view, int position) {
+ Toast.makeText(getActivity(), "你点了第" + (position + 1) + "个条目", Toast.LENGTH_SHORT).show();
+ Data.sat_con = position;
+ Intent intent = new Intent();
+ intent.setClass(getActivity(), Content.class);
+ startActivity(intent);
+ }
+ });
+ }
+ @Override
+ public void onCreate (Bundle savedInstanceState){
+ super.onCreate(savedInstanceState);
+
+ }
+ private void showStagger () {
+
+ StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(2, LinearLayout.VERTICAL);
+ //这只布局管理器方向
+ layoutManager.setReverseLayout(false);
+ mlist.setLayoutManager(layoutManager);
+// RecyclerView瀑布流
+ adapter = new MyAdapter(mdata);
+ mlist.setAdapter(adapter);
+ }//创建监听接口
+ @Override
+ public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle
+ savedInstanceState){
+ mContext = getActivity();
+ mView = inflater.inflate(R.layout.find, container, false);
+
+ return mView;
+ }
+
+ @Override
+ public void onPause () {
+ super.onPause();
+ }
+ private void initData () {
+ //listview数据集合---adapter(创建适配器)----setadapter(设置到listview里面)----显示数据
+ mdata = new ArrayList<>();//创建数据集合并提取为成员变量
+ //创建模拟数据
+ for (int i = 0; i < Datas.icons.length; i++) {
+ //创建数据对象
+ ItemBean data = new ItemBean();
+ data.icon = Datas.icons[i];
+ data.title = Datas.title[i];
+ //添加到集合里头
+ mdata.add(data);
+ }
+ }
+
+
+ }
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Home.java b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Home.java
new file mode 100644
index 0000000..372a1bd
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Home.java
@@ -0,0 +1,97 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Outline;
+import android.os.Build;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
+import android.widget.ImageButton;
+import android.widget.Toast;
+import com.youth.banner.BannerConfig;
+import com.youth.banner.listener.OnBannerListener;
+
+import com.youth.banner.Banner;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.fragment.app.Fragment;
+
+
+import static ee.example.activity_fragmenttabhost.Data.initView;
+
+
+public class TabFragment_Home extends Fragment {
+ private static final String TAG = "TabFirstFragment";
+ protected Context mContext;
+
+ @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+
+ Banner banner = getActivity().findViewById(R.id.banner);
+ super.onActivityCreated(savedInstanceState);
+ banner.setImageLoader(new GlideImageLoader());//创建Gli类继承imageloader类
+ banner.setImages(Data.images);
+ //banner.setBannerTitles(imageTitle);
+ banner.setIndicatorGravity(BannerConfig.CENTER);//设置指示器位置
+ //设置是否自动轮播(不设置则默认自动)
+ banner.isAutoPlay(true);
+ //设置轮播图片间隔时间(不设置默认为2000)
+ banner.setDelayTime(2500);
+ //设置圆角
+ banner.setOutlineProvider(new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 30);
+ }
+ });
+ banner.setClipToOutline(true);
+
+ banner.setIndicatorGravity(BannerConfig.CENTER);
+ banner.setImages(Data.images)//设置监听
+ .setOnBannerListener(new OnBannerListener() {
+ @Override
+ public void OnBannerClick(int position) {
+ Toast.makeText(getActivity(), "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
+ }
+ })
+ .start();//最后调用的方法启动轮播
+ ImageButton imageButton = getActivity().findViewById(R.id.imb_queding);
+ imageButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ //Toast.makeText(getActivity(), "success2",Toast.LENGTH_LONG).show();
+ Intent intent = new Intent(getActivity(),New1.class);
+ startActivity(intent);
+ }
+ });
+}
+ @Override
+ public void onCreate( Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ initView();
+
+
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ mContext=getActivity();
+ View mView = inflater.inflate(R.layout.home, container, false);
+ return mView;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ }
+
+
+}
+
diff --git a/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Me.java b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Me.java
new file mode 100644
index 0000000..1ec93e8
--- /dev/null
+++ b/app/src/main/java/ee/example/activity_fragmenttabhost/TabFragment_Me.java
@@ -0,0 +1,80 @@
+package ee.example.activity_fragmenttabhost;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+public class TabFragment_Me extends Fragment {
+ protected View mView;
+ protected Context mContext;
+ private Button me_Tuichu;
+ private Button me_Gaimima;
+ // private Button me_Gainicheng;
+ private TextView me_Zhanghu;
+
+ @Override
+ public void onActivityCreated( Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ intiview();
+
+ me_Tuichu.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View view) {
+ //Data.sta_dl=false;Intent intent=new Intent(getActivity(),LoginActivity.class);
+ Data.sta_dl=false;Intent intent=new Intent(getActivity(),LoginActivity.class);
+ startActivity(intent);
+ Data.images.clear();
+ getActivity().finish();
+ }
+ });
+
+ me_Gaimima.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent =new Intent(getActivity(),MainChangemima.class);
+ startActivity(intent);
+ Data.images.clear();
+ getActivity().finish();
+ }
+ });
+
+ if(Data.sta_np==true){
+ me_Zhanghu.setText("当前账户为:"+ Data.sta_name+" 密码为:"+ Data.sta_password);
+ }
+ else { me_Zhanghu.setText("当前为游客登陆");}
+
+ }
+
+ @Override
+ public void onCreate( Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ mContext=getActivity();
+ mView=inflater.inflate(R.layout.me,container,false);
+ return mView;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ }
+
+ private void intiview(){
+ me_Tuichu=getActivity().findViewById(R.id.me_tuichu);
+ me_Zhanghu=getActivity().findViewById(R.id.me_zhanghu);
+ me_Gaimima=getActivity().findViewById(R.id.me_gaimima);
+ //me_Gainicheng=getActivity().findViewById(R.id.me_gainicheng);
+
+ }
+
+}
diff --git a/app/src/main/res/anim/fragment_slide_left_enter.xml b/app/src/main/res/anim/fragment_slide_left_enter.xml
new file mode 100644
index 0000000..d14f68f
--- /dev/null
+++ b/app/src/main/res/anim/fragment_slide_left_enter.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_slide_left_exit.xml b/app/src/main/res/anim/fragment_slide_left_exit.xml
new file mode 100644
index 0000000..9bc4618
--- /dev/null
+++ b/app/src/main/res/anim/fragment_slide_left_exit.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_slide_right_enter.xml b/app/src/main/res/anim/fragment_slide_right_enter.xml
new file mode 100644
index 0000000..4131735
--- /dev/null
+++ b/app/src/main/res/anim/fragment_slide_right_enter.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_slide_right_exit.xml b/app/src/main/res/anim/fragment_slide_right_exit.xml
new file mode 100644
index 0000000..3b00d52
--- /dev/null
+++ b/app/src/main/res/anim/fragment_slide_right_exit.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/back.png b/app/src/main/res/drawable/back.png
new file mode 100644
index 0000000..7089987
Binary files /dev/null and b/app/src/main/res/drawable/back.png differ
diff --git a/app/src/main/res/drawable/background.jpg b/app/src/main/res/drawable/background.jpg
new file mode 100644
index 0000000..f767fe8
Binary files /dev/null and b/app/src/main/res/drawable/background.jpg differ
diff --git a/app/src/main/res/drawable/bishu.png b/app/src/main/res/drawable/bishu.png
new file mode 100644
index 0000000..9b51b19
Binary files /dev/null and b/app/src/main/res/drawable/bishu.png differ
diff --git a/app/src/main/res/drawable/chengde.png b/app/src/main/res/drawable/chengde.png
new file mode 100644
index 0000000..9d7345f
Binary files /dev/null and b/app/src/main/res/drawable/chengde.png differ
diff --git a/app/src/main/res/drawable/cleaner.png b/app/src/main/res/drawable/cleaner.png
new file mode 100644
index 0000000..45c9bf3
Binary files /dev/null and b/app/src/main/res/drawable/cleaner.png differ
diff --git a/app/src/main/res/drawable/community.xml b/app/src/main/res/drawable/community.xml
new file mode 100644
index 0000000..9783ea3
--- /dev/null
+++ b/app/src/main/res/drawable/community.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ditu.png b/app/src/main/res/drawable/ditu.png
new file mode 100644
index 0000000..aa7ac0b
Binary files /dev/null and b/app/src/main/res/drawable/ditu.png differ
diff --git a/app/src/main/res/drawable/draw_home.xml b/app/src/main/res/drawable/draw_home.xml
new file mode 100644
index 0000000..cb1fcdc
--- /dev/null
+++ b/app/src/main/res/drawable/draw_home.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/faxian.png b/app/src/main/res/drawable/faxian.png
new file mode 100644
index 0000000..8b1ba6d
Binary files /dev/null and b/app/src/main/res/drawable/faxian.png differ
diff --git a/app/src/main/res/drawable/find.xml b/app/src/main/res/drawable/find.xml
new file mode 100644
index 0000000..2252d41
--- /dev/null
+++ b/app/src/main/res/drawable/find.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/fj1.jpg b/app/src/main/res/drawable/fj1.jpg
new file mode 100644
index 0000000..b41de28
Binary files /dev/null and b/app/src/main/res/drawable/fj1.jpg differ
diff --git a/app/src/main/res/drawable/fj10.jpg b/app/src/main/res/drawable/fj10.jpg
new file mode 100644
index 0000000..24df222
Binary files /dev/null and b/app/src/main/res/drawable/fj10.jpg differ
diff --git a/app/src/main/res/drawable/fj11.jpg b/app/src/main/res/drawable/fj11.jpg
new file mode 100644
index 0000000..d10531d
Binary files /dev/null and b/app/src/main/res/drawable/fj11.jpg differ
diff --git a/app/src/main/res/drawable/fj12.jpg b/app/src/main/res/drawable/fj12.jpg
new file mode 100644
index 0000000..db15736
Binary files /dev/null and b/app/src/main/res/drawable/fj12.jpg differ
diff --git a/app/src/main/res/drawable/fj13.jpg b/app/src/main/res/drawable/fj13.jpg
new file mode 100644
index 0000000..419f1af
Binary files /dev/null and b/app/src/main/res/drawable/fj13.jpg differ
diff --git a/app/src/main/res/drawable/fj14.jpg b/app/src/main/res/drawable/fj14.jpg
new file mode 100644
index 0000000..5626287
Binary files /dev/null and b/app/src/main/res/drawable/fj14.jpg differ
diff --git a/app/src/main/res/drawable/fj15.jpg b/app/src/main/res/drawable/fj15.jpg
new file mode 100644
index 0000000..dc39688
Binary files /dev/null and b/app/src/main/res/drawable/fj15.jpg differ
diff --git a/app/src/main/res/drawable/fj2.jpg b/app/src/main/res/drawable/fj2.jpg
new file mode 100644
index 0000000..34bc374
Binary files /dev/null and b/app/src/main/res/drawable/fj2.jpg differ
diff --git a/app/src/main/res/drawable/fj3.jpg b/app/src/main/res/drawable/fj3.jpg
new file mode 100644
index 0000000..bb9a61a
Binary files /dev/null and b/app/src/main/res/drawable/fj3.jpg differ
diff --git a/app/src/main/res/drawable/fj4.jpg b/app/src/main/res/drawable/fj4.jpg
new file mode 100644
index 0000000..e4b1433
Binary files /dev/null and b/app/src/main/res/drawable/fj4.jpg differ
diff --git a/app/src/main/res/drawable/fj5.jpg b/app/src/main/res/drawable/fj5.jpg
new file mode 100644
index 0000000..c82ed43
Binary files /dev/null and b/app/src/main/res/drawable/fj5.jpg differ
diff --git a/app/src/main/res/drawable/fj6.jpg b/app/src/main/res/drawable/fj6.jpg
new file mode 100644
index 0000000..b091be9
Binary files /dev/null and b/app/src/main/res/drawable/fj6.jpg differ
diff --git a/app/src/main/res/drawable/fj7.jpg b/app/src/main/res/drawable/fj7.jpg
new file mode 100644
index 0000000..5d75b25
Binary files /dev/null and b/app/src/main/res/drawable/fj7.jpg differ
diff --git a/app/src/main/res/drawable/fj8.jpg b/app/src/main/res/drawable/fj8.jpg
new file mode 100644
index 0000000..762170c
Binary files /dev/null and b/app/src/main/res/drawable/fj8.jpg differ
diff --git a/app/src/main/res/drawable/fj9.jpg b/app/src/main/res/drawable/fj9.jpg
new file mode 100644
index 0000000..d8ac06c
Binary files /dev/null and b/app/src/main/res/drawable/fj9.jpg differ
diff --git a/app/src/main/res/drawable/gonglve.png b/app/src/main/res/drawable/gonglve.png
new file mode 100644
index 0000000..2e57824
Binary files /dev/null and b/app/src/main/res/drawable/gonglve.png differ
diff --git a/app/src/main/res/drawable/guozhi.png b/app/src/main/res/drawable/guozhi.png
new file mode 100644
index 0000000..61e1fb9
Binary files /dev/null and b/app/src/main/res/drawable/guozhi.png differ
diff --git a/app/src/main/res/drawable/home.xml b/app/src/main/res/drawable/home.xml
new file mode 100644
index 0000000..0e0fb64
--- /dev/null
+++ b/app/src/main/res/drawable/home.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/jingdian.png b/app/src/main/res/drawable/jingdian.png
new file mode 100644
index 0000000..8a0f7e5
Binary files /dev/null and b/app/src/main/res/drawable/jingdian.png differ
diff --git a/app/src/main/res/drawable/jinian2.gif b/app/src/main/res/drawable/jinian2.gif
new file mode 100644
index 0000000..3c33f31
Binary files /dev/null and b/app/src/main/res/drawable/jinian2.gif differ
diff --git a/app/src/main/res/drawable/jinianguan.gif b/app/src/main/res/drawable/jinianguan.gif
new file mode 100644
index 0000000..7a2ad46
Binary files /dev/null and b/app/src/main/res/drawable/jinianguan.gif differ
diff --git a/app/src/main/res/drawable/me.xml b/app/src/main/res/drawable/me.xml
new file mode 100644
index 0000000..13dba44
--- /dev/null
+++ b/app/src/main/res/drawable/me.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/searchyuanjiao.xml b/app/src/main/res/drawable/searchyuanjiao.xml
new file mode 100644
index 0000000..0ed5eb0
--- /dev/null
+++ b/app/src/main/res/drawable/searchyuanjiao.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/shequ.png b/app/src/main/res/drawable/shequ.png
new file mode 100644
index 0000000..a8bf7cc
Binary files /dev/null and b/app/src/main/res/drawable/shequ.png differ
diff --git a/app/src/main/res/drawable/shouye_2.png b/app/src/main/res/drawable/shouye_2.png
new file mode 100644
index 0000000..ac3b8db
Binary files /dev/null and b/app/src/main/res/drawable/shouye_2.png differ
diff --git a/app/src/main/res/drawable/tab_bg_n.png b/app/src/main/res/drawable/tab_bg_n.png
new file mode 100644
index 0000000..44b10b8
Binary files /dev/null and b/app/src/main/res/drawable/tab_bg_n.png differ
diff --git a/app/src/main/res/drawable/tab_bg_s.png b/app/src/main/res/drawable/tab_bg_s.png
new file mode 100644
index 0000000..9f87a62
Binary files /dev/null and b/app/src/main/res/drawable/tab_bg_s.png differ
diff --git a/app/src/main/res/drawable/tab_bg_selector.xml b/app/src/main/res/drawable/tab_bg_selector.xml
new file mode 100644
index 0000000..c06210a
--- /dev/null
+++ b/app/src/main/res/drawable/tab_bg_selector.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/tab_text_selector.xml b/app/src/main/res/drawable/tab_text_selector.xml
new file mode 100644
index 0000000..deb79bd
--- /dev/null
+++ b/app/src/main/res/drawable/tab_text_selector.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/text_selector.xml b/app/src/main/res/drawable/text_selector.xml
new file mode 100644
index 0000000..a8b409b
--- /dev/null
+++ b/app/src/main/res/drawable/text_selector.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/touxiang.jpg b/app/src/main/res/drawable/touxiang.jpg
new file mode 100644
index 0000000..0a908f9
Binary files /dev/null and b/app/src/main/res/drawable/touxiang.jpg differ
diff --git a/app/src/main/res/drawable/tuji.png b/app/src/main/res/drawable/tuji.png
new file mode 100644
index 0000000..cd2a946
Binary files /dev/null and b/app/src/main/res/drawable/tuji.png differ
diff --git a/app/src/main/res/drawable/wode_1.png b/app/src/main/res/drawable/wode_1.png
new file mode 100644
index 0000000..c1b51d6
Binary files /dev/null and b/app/src/main/res/drawable/wode_1.png differ
diff --git a/app/src/main/res/drawable/youji.png b/app/src/main/res/drawable/youji.png
new file mode 100644
index 0000000..e927e13
Binary files /dev/null and b/app/src/main/res/drawable/youji.png differ
diff --git a/app/src/main/res/layout/activity_content.xml b/app/src/main/res/layout/activity_content.xml
new file mode 100644
index 0000000..cebdb9e
--- /dev/null
+++ b/app/src/main/res/layout/activity_content.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..6987afa
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main2.xml b/app/src/main/res/layout/activity_main2.xml
new file mode 100644
index 0000000..37ca03f
--- /dev/null
+++ b/app/src/main/res/layout/activity_main2.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main_changemima.xml b/app/src/main/res/layout/activity_main_changemima.xml
new file mode 100644
index 0000000..09a5de5
--- /dev/null
+++ b/app/src/main/res/layout/activity_main_changemima.xml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/community.xml b/app/src/main/res/layout/community.xml
new file mode 100644
index 0000000..7a6d3dc
--- /dev/null
+++ b/app/src/main/res/layout/community.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fg_content.xml b/app/src/main/res/layout/fg_content.xml
new file mode 100644
index 0000000..9a289cd
--- /dev/null
+++ b/app/src/main/res/layout/fg_content.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fg_newlist.xml b/app/src/main/res/layout/fg_newlist.xml
new file mode 100644
index 0000000..bab7571
--- /dev/null
+++ b/app/src/main/res/layout/fg_newlist.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/find.xml b/app/src/main/res/layout/find.xml
new file mode 100644
index 0000000..2005024
--- /dev/null
+++ b/app/src/main/res/layout/find.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tab_community.xml b/app/src/main/res/layout/fragment_tab_community.xml
new file mode 100644
index 0000000..591a3f3
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tab_community.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tab_find.xml b/app/src/main/res/layout/fragment_tab_find.xml
new file mode 100644
index 0000000..1105190
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tab_find.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_tab_home.xml b/app/src/main/res/layout/fragment_tab_home.xml
new file mode 100644
index 0000000..b3b31de
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tab_home.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tab_me.xml b/app/src/main/res/layout/fragment_tab_me.xml
new file mode 100644
index 0000000..5b5b917
--- /dev/null
+++ b/app/src/main/res/layout/fragment_tab_me.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/grid_item.xml b/app/src/main/res/layout/grid_item.xml
new file mode 100644
index 0000000..081c1fd
--- /dev/null
+++ b/app/src/main/res/layout/grid_item.xml
@@ -0,0 +1,18 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/home.xml b/app/src/main/res/layout/home.xml
new file mode 100644
index 0000000..358428c
--- /dev/null
+++ b/app/src/main/res/layout/home.xml
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_stagger.xml b/app/src/main/res/layout/item_stagger.xml
new file mode 100644
index 0000000..32ea3aa
--- /dev/null
+++ b/app/src/main/res/layout/item_stagger.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_tabbar.xml b/app/src/main/res/layout/item_tabbar.xml
new file mode 100644
index 0000000..9a93ebe
--- /dev/null
+++ b/app/src/main/res/layout/item_tabbar.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000..a83092a
--- /dev/null
+++ b/app/src/main/res/layout/list_item.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/login.xml b/app/src/main/res/layout/login.xml
new file mode 100644
index 0000000..229dd84
--- /dev/null
+++ b/app/src/main/res/layout/login.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/me.xml b/app/src/main/res/layout/me.xml
new file mode 100644
index 0000000..54ac8df
--- /dev/null
+++ b/app/src/main/res/layout/me.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/regiter.xml b/app/src/main/res/layout/regiter.xml
new file mode 100644
index 0000000..e5eebb0
--- /dev/null
+++ b/app/src/main/res/layout/regiter.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..a571e60
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..61da551
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c41dd28
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..db5080a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..6dba46d
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..da31a87
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..15ac681
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..b216f2d
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..f25a419
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..e96783c
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..80e7e3d
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,24 @@
+
+
+ #6200EE
+ #3700B3
+ #03DAC5
+
+ #ffffff
+ #000000
+ #07b613
+
+ #000000
+ #3da3e0
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FAFAFA
+ #F4F4F4
+ #8D8D8D
+ #ECECEC
+ #6E6E6E
+ #0000FF
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..25b73b1
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+ 72dp
+ 30sp
+ 18sp
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..3d244d1
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,31 @@
+
+ Activity_FragmentTabHost
+
+ 首页
+ 发现
+ 社区
+ 我的
+
+ 用户登录
+ 账 号:
+ 密 码:
+ 登录
+ 注册
+ 记住我
+ 承德避暑山庄为国家级风景名胜区、国家AAAAA级旅游景区、全国重点文物保护单位、世界文化遗产。
+
+ \n 避暑山庄,又称“热河行宫”、“承德离宫”。它从康熙四十二年(1703年)开始动工兴建,至乾隆五十七年(1792年)最后落成,历时89年。清代前中期的几位皇帝几乎每年都来这里消夏避暑,处理政务,通常是每年农历四、五月份来,九、十月份返回北京。避暑山庄实际上已成为清朝的第二政治中心。整个山庄占地564万平方米,山庄可分为宫殿区和苑景区两部分,宫殿区由正宫、松鹤斋、万壑松风和东宫四组建筑组成。苑景区又分为山区、湖区、平原区三部分。以山区面积最广,约占山庄总面积的70%多。山庄集全国园林精华于一园,具有南秀北雄的特点。
+
+清代山庄内共有亭子90座,堤桥29座,碑刻摩崖25处,假山叠石70余组,殿宇、楼堂、寺庙、亭台、塔阁等各种建筑120余组,总建筑面积达10万多平方米。康熙皇帝以4个字命名的36景和乾隆皇帝以3个字命名的36景最为著名,合称“避暑山庄72景”。康熙皇帝称赞这里是“自有山川开北极,天然风景胜西湖。”山庄宫墙长约10公里,因为它形似长城,承德人亲切地称它为“小长城”。宫墙外是仿全国各族著名庙宇而修建的皇家寺庙群,这些寺庙呈半圆形环绕在山庄-,形成众星拱月之势,象征着当时全国各民族紧紧围绕在清王朝统治中心的周围。随着岁月的流逝,朝代的变更,避暑山庄也历尽了沧桑。新中国成立后,山庄才得到了新生,现在是全国保存得最好、规模最大的皇家园林,是世界文化遗产、是中外驰名的旅游胜地。
+
+清朝初年,中国藏传佛教在我国蒙、藏地区(包括青海、新疆)势力强大,教徒信仰虔诚,佛经教义是蒙、-民的精神支柱。喇嘛教上层人物在政治上有效地控制着地方政权,经济上汇聚着大量财富,文化上掌握着经堂教院。清政府为加强对北疆的统治,巩固国家统一,对边疆各少数民族实行“怀柔”政策。“怀柔”政策的一个重要内容就是对蒙藏民族采取“因其教不易其俗”、“以习俗为治”的方针。乾隆说“兴黄教,即所以安众蒙古,所系非小,故不可不保护之”。反映了清统治者以顺应少数民族习俗、尊重蒙藏上层人物宗教信仰,来实现密切地方和中央政府的关系,巩固国家统一为目的的战略思想。
+
+避暑山庄自康熙四十七年(1708年)驻跸使用以后,皇帝每年秋狝(秋狝(xiǎn):中国古代在不同的季节打猎有不同的称呼。在春季称为春蒐;在夏季称为夏苗;在秋季称为秋狝;在冬季称为冬狩。)前后均要在此长期停住,消夏避暑,处理军政要务。由此而来的大批蒙藏等少数民族首领和外国使臣,每年都要到承德谒见皇帝,参加庆典。借此,清廷便在承德大兴土木,建造寺庙,为前来的上层政教人物提供瞻礼、膜拜等宗教活动场所,功能上同避暑山庄相辅相成,互为补遗。
+ 承德避暑山庄为国家级风景名胜区、国家AAAAA级旅游景区、全国重点文物保护单位、世界文化遗产。
+
+ 承德苏联红军烈士纪念碑年代为1945年,位于承德市区牛圈子沟。 2008年10月20日承德苏联红军烈士纪念碑被河北省人民政府公布为第五批省级文物保护单位。
+
+ 牛圈子沟镇:牛圈子沟镇地处双桥区近郊区,分东中西三个片区,交通便捷,承朝高速途径牛圈子沟镇,总面积62平方公里,耕地面积227.27公顷,辖12个村、6个社区、61个村民组,35个自然村。总户数14736户(其中农业4379户、非农业10357户),总人口38985人(其中农业11735户,非农业27250人)。自然资源丰富,著名的夹墙沟、魁星楼风景区就座落在辖区内。
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..5c82ad4
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/test/java/ee/example/activity_fragmenttabhost/ExampleUnitTest.java b/app/src/test/java/ee/example/activity_fragmenttabhost/ExampleUnitTest.java
new file mode 100644
index 0000000..9c10aee
--- /dev/null
+++ b/app/src/test/java/ee/example/activity_fragmenttabhost/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package ee.example.activity_fragmenttabhost;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..6754c23
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,24 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ jcenter()
+ }
+ dependencies {
+ classpath "com.android.tools.build:gradle:4.0.1"
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..92ed49c
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,20 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+android.overridePathCheck=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..f6b961f
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..132898a
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sat Nov 14 21:28:40 CST 2020
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..b62397b
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+rootProject.name = "Activity_FragmentTabHost"
\ No newline at end of file