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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +