Compare commits

..

No commits in common. 'master' and 'ongbodev' have entirely different histories.

@ -8,12 +8,6 @@
</compositeConfiguration>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="testRunner" value="PLATFORM" />
</GradleProjectSettings>

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>paz2s9bc5</name>
<comment>Project paz2s9bc5 created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>

@ -1,2 +0,0 @@
connection.project.dir=
eclipse.preferences.version=1

@ -1,165 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":app" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.5.3" />
<option name="LAST_KNOWN_AGP_VERSION" value="3.5.3" />
</configuration>
</facet>
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<afterSyncTasks>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/build/intermediates/javac/debug/classes" />
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugUnitTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test.ext:junit:1.1.0@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test.espresso:espresso-core:3.1.1@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:runner:1.1.1@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:core:1.1.0@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:monitor:1.1.1@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test.espresso:espresso-idling-resource:3.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.hankcs:hanlp:portable-1.7.2@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.collection:collection:1.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-common:2.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.arch.core:core-common:2.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.annotation:annotation:1.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.constraintlayout:constraintlayout-solver:1.1.3@jar" level="project" />
<orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.2.62@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.2@jar" level="project" />
<orderEntry type="library" name="Gradle: com.flaviofaria:kenburnsview:1.0.7@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.material:material:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.loopeer.library:cardstack:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.hanks.animatecheckbox:library:0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.johnpersano:supertoasts:2.0@aar" level="project" />
<orderEntry type="library" name="Gradle: liji.library.dev:citypickerview:5.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.florent37:materialviewpager:1.2.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.ramotion.foldingcell:folding-cell:1.2.3@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.appcompat:appcompat:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.cardview:cardview:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jpardogo.materialtabstrip:library:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.legacy:legacy-support-v4:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.fragment:fragment:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.vectordrawable:vectordrawable-animated:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.recyclerview:recyclerview:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.legacy:legacy-support-core-ui:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.legacy:legacy-support-core-utils:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.vectordrawable:vectordrawable:1.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.transition:transition:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.loader:loader:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.viewpager:viewpager:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.coordinatorlayout:coordinatorlayout:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.drawerlayout:drawerlayout:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.slidingpanelayout:slidingpanelayout:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.customview:customview:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.swiperefreshlayout:swiperefreshlayout:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.asynclayoutinflater:asynclayoutinflater:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.media:media:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.core:core:1.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.versionedparcelable:versionedparcelable:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.cursoradapter:cursoradapter:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-runtime:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.documentfile:documentfile:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.localbroadcastmanager:localbroadcastmanager:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.print:print:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-viewmodel:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.interpolator:interpolator:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata-core:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.arch.core:core-runtime:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.constraintlayout:constraintlayout:1.1.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.dmytrodanylyk.circular-progress-button:library:1.1.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.open-android:WheelPicker:v1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: cn.aigestudio.wheelpicker:WheelPicker:1.1.3@aar" level="project" />
<orderEntry type="library" name="Gradle: de.hdodenhof:circleimageview:2.2.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.ybq:Android-SpinKit:1.4.0@aar" level="project" />
</component>
</module>

@ -5,7 +5,7 @@ android {
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.cmknowledgegraph"
minSdkVersion 18
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
@ -21,39 +21,79 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'com/mysql/cj/configurations/3-0-Compat.properties'
}
}
repositories {
maven { url "https://jitpack.io" }
maven { url 'https://jitpack.io' }
jcenter()
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
api 'com.hankcs:hanlp:portable-1.7.2'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.alibaba:fastjson:1.2.62'
implementation 'com.loopeer.library:cardstack:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
//
implementation 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3'
implementation 'com.hanks.animatecheckbox:library:0.1'
//
implementation 'com.github.johnpersano:supertoasts:2.0'
//
implementation 'liji.library.dev:citypickerview:5.1.0'
implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.3'
implementation 'com.github.open-android:WheelPicker:v1.0.0'
//
// boombutton
implementation 'com.nightonke:boommenu:2.1.1'
// tab
// implementation 'devlight.io:navigationtabbar:1.2.5'
// implementation 'com.github.hackware1993:MagicIndicator:1.5.0'
implementation 'com.github.florent37:materialviewpager:1.2.3'
implementation 'com.ramotion.foldingcell:folding-cell:1.2.3'
//dependencies
implementation 'com.flaviofaria:kenburnsview:1.0.7'
implementation 'com.jpardogo.materialtabstrip:library:1.1.0'
implementation 'com.github.bumptech.glide:glide:4.0.0'
implementation 'com.github.ibrahimsn98:SmoothBottomBar:1.5'
//OKhttp
// implementation "com.squareup.okhttp3:okhttp:4.2.2"
// implementation 'com.alibaba:fastjson:1.2.61'
implementation 'com.alibaba:fastjson:1.1.71.android'
//
implementation 'com.github.yalantis:jellytoolbar:v1.0'
//
implementation 'com.github.yalantis:Side-Menu.Android:1.0.1'
implementation 'com.mxn.soul:flowingdrawer-core:2.1.0'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.squareup.picasso:picasso:2.5.0'
// implementation 'com.squareup.picasso:picasso:2.71828'
//home
implementation 'com.github.DingMouRen:LayoutManagerGroup:1e6f4f96eb'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.github.ybq:Android-SpinKit:1.4.0'
implementation "com.hanks:htextview-base:0.1.6"
implementation "com.hanks:htextview-scale:0.1.6"
implementation "com.hanks:htextview-rainbow:0.1.6"
//
implementation 'devlight.io:navigationtabbar:1.2.5'
//Canlendar
implementation 'com.github.prolificinteractive:material-calendarview:1.6.0'
implementation 'jp.wasabeef:glide-transformations:4.1.0'
compileOnly "jp.co.cyberagent.android:gpuimage:2.0.3"
//
//
implementation 'com.skyfishjy.ripplebackground:library:1.0.1'
implementation 'com.github.Q42:AndroidScrollingImageView:1.3.3'
implementation 'jp.wasabeef:recyclerview-animators:3.0.0'
implementation 'com.jcodecraeer:xrecyclerview:1.6.0'
implementation 'com.loopeer.library:cardstack:1.0.2'
implementation 'com.ramotion.foldingcell:folding-cell:1.2.3'
//
implementation 'com.yarolegovich:discrete-scrollview:1.4.9'
//
// implementation 'com.android.support:percent:28.3.0'
}

@ -7,16 +7,19 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:networkSecurityConfig="@xml/network_security_config"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.example.SearchCenter.SearchEntryActivity"/>
<activity android:name="com.example.PersonalCenter.Login_Register.LoginActivity"/>
<activity android:name="com.example.PersonalCenter.Login_Register.RegisterActivity"/>
<activity android:name=".PersonalityCenterActivity" />
<activity android:name=".LoginActivity" >
</activity>
<activity android:name=".RegisterActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

@ -1,13 +1,11 @@
package com.example.PersonalCenter;
package com.example.ChatContentPkg;
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.annotation.NonNull;
import androidx.annotation.Nullable;
@ -18,31 +16,34 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.example.PersonalCenter.Login_Register.LoginActivity;
import com.example.Util.User;
import com.example.cmknowledgegraph.MainActivity;
import com.example.ChatContentPkg.RecyclerViewFragment;
import com.example.cmknowledgegraph.R;
import com.github.florent37.materialviewpager.MaterialViewPager;
import com.github.florent37.materialviewpager.header.HeaderDesign;
import de.hdodenhof.circleimageview.CircleImageView;
public class ChatContent extends Fragment{
AppCompatActivity appCompatActivity;//获取到Activity
public class MyPersonCenter extends Fragment {
private CircleImageView iv_avatar;
private TextView iv_avatar_username;
public AppCompatActivity getAppCompatActivity() {
return appCompatActivity;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
MainActivity mainActivity;
@Override
public void onAttach(Context context) {
public void onAttach(@NonNull Context context) {
super.onAttach(context);
this.mainActivity = (MainActivity) context;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.chat_content, container, false);
//要加载的layout文件
return inflater.inflate(R.layout.activity_chat, container, false);
}
@Override
@ -50,18 +51,6 @@ public class MyPersonCenter extends Fragment {
super.onActivityCreated(savedInstanceState);
//包装处理逻辑
//得到MaterViewPager实例
iv_avatar = mainActivity.findViewById(R.id.iv_avatar);
iv_avatar_username = mainActivity.findViewById(R.id.iv_avatar_username);
iv_avatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!User.isLogin){
Intent intent=new Intent();
intent.setClass(getActivity(), LoginActivity.class);
startActivity(intent);
}
}
});
MaterialViewPager materialViewPager = (MaterialViewPager) getActivity().findViewById(R.id.materialViewPager);
//为MaterialViewPager添加监听
materialViewPager.setMaterialViewPagerListener(new MaterialViewPager.Listener() {
@ -72,17 +61,17 @@ public class MyPersonCenter extends Fragment {
case 0:
return HeaderDesign.fromColorResAndDrawable(
R.color.blue,
getResources().getDrawable(R.drawable.xiha1)
getResources().getDrawable(R.drawable.draw5)
);
case 1:
return HeaderDesign.fromColorResAndDrawable(
R.color.green,
getResources().getDrawable(R.drawable.xiha2)
getResources().getDrawable(R.drawable.draw6)
);
case 2:
return HeaderDesign.fromColorResAndDrawable(
R.color.cyan,
getResources().getDrawable(R.drawable.xiha3)
getResources().getDrawable(R.drawable.draw7)
);
}
@ -91,9 +80,10 @@ public class MyPersonCenter extends Fragment {
});
//设置Toolbar
Toolbar toolbar = materialViewPager.getToolbar();
AppCompatActivity ap = getAppCompatActivity();
if(toolbar!=null){
mainActivity.setSupportActionBar(toolbar);
ActionBar actionBar = mainActivity.getSupportActionBar();
ap.setSupportActionBar(toolbar);
ActionBar actionBar = ap.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
@ -108,13 +98,13 @@ public class MyPersonCenter extends Fragment {
public Fragment getItem(int position) {
switch (position % 3){
case 0:
return RecyclerViewFragment.newInstance(0,mainActivity);
return RecyclerViewFragment.newInstance(0,appCompatActivity);
case 1:
return RecyclerViewFragmentINFO.newInstance(1,mainActivity);
return RecyclerViewFragment.newInstance(1,appCompatActivity);
case 2:
return RecyclerViewFragment.newInstance(1,mainActivity);
return DrugFriendsFragment.newInstance(appCompatActivity);
default:
return RecyclerViewFragment.newInstance(1,mainActivity);
return RecyclerViewFragment.newInstance(1,appCompatActivity);
}
}
@ -129,9 +119,9 @@ public class MyPersonCenter extends Fragment {
public CharSequence getPageTitle(int position) {
switch (position % 3){
case 0:
return "DYNAMIC";
return "论坛";
case 1:
return "INFO";
return "drug";
case 2:
return "药友";
default:
@ -142,14 +132,11 @@ public class MyPersonCenter extends Fragment {
materialViewPager.getViewPager().setOffscreenPageLimit(materialViewPager
.getViewPager().getAdapter().getCount());
materialViewPager.getPagerTitleStrip().setViewPager(materialViewPager.getViewPager());
}
@Override
public void onResume() {
super.onResume();
if(User.isLogin){
iv_avatar_username.setText("Hello"+User.getUser().getUsername());
}
}
}

@ -0,0 +1,166 @@
package com.example.ChatContentPkg;
import android.content.Context;
import android.graphics.PorterDuff;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
import com.loopeer.cardstack.CardStackView;
import com.loopeer.cardstack.StackAdapter;
public class DrugFriendsCardAdapter extends StackAdapter<Integer> {
AppCompatActivity appCompatActivity;
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public DrugFriendsCardAdapter(Context context) {
super(context);
}
@Override
public void bindView(Integer data, int position, CardStackView.ViewHolder holder) {
if (holder instanceof ColorItemLargeHeaderViewHolder) {
ColorItemLargeHeaderViewHolder h = (ColorItemLargeHeaderViewHolder) holder;
h.onBind(data, position);
}
if (holder instanceof ColorItemWithNoHeaderViewHolder) {
ColorItemWithNoHeaderViewHolder h = (ColorItemWithNoHeaderViewHolder) holder;
h.onBind(data, position);
}
if (holder instanceof ColorItemViewHolder) {
ColorItemViewHolder h = (ColorItemViewHolder) holder;
h.onBind(data, position);
}
}
@Override
protected CardStackView.ViewHolder onCreateView(ViewGroup parent, int viewType) {
View view;
switch (viewType) {
case R.layout.list_card_item_larger_header:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_card_item_larger_header, parent, false);
// view = getLayoutInflater().inflate(R.layout.list_card_item_larger_header, parent, false);
return new ColorItemLargeHeaderViewHolder(view);
case R.layout.list_card_item_with_no_header:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_card_item_with_no_header, parent, false);
// view = getLayoutInflater().inflate(R.layout.list_card_item_with_no_header, parent, false);
return new ColorItemWithNoHeaderViewHolder(view);
default:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_card_item, parent, false);
// view = getLayoutInflater().inflate(R.layout.list_card_item, parent, false);
return new ColorItemViewHolder(view);
}
}
@Override
public int getItemViewType(int position) {
// if (position == 6) {//TODO TEST LARGER ITEM
// return R.layout.list_card_item_larger_header;
// } else if (position == 10) {
// return R.layout.list_card_item_with_no_header;
// }else {
return R.layout.list_card_item;
// }
}
//三种ViewHolder
public class ColorItemViewHolder extends CardStackView.ViewHolder {
View mLayout;
View mContainerContent;
TextView mTextTitle;
public ColorItemViewHolder(View view) {
super(view);
mLayout = view.findViewById(R.id.frame_list_card_item);
mContainerContent = view.findViewById(R.id.container_list_content);
mTextTitle = (TextView) view.findViewById(R.id.text_list_card_title);
}
@Override
public void onItemExpand(boolean b) {
mContainerContent.setVisibility(b ? View.VISIBLE : View.GONE);
}
public void onBind(Integer data, int position) {
mLayout.getBackground().setColorFilter(ContextCompat.getColor(appCompatActivity, data), PorterDuff.Mode.SRC_IN);
mTextTitle.setText("这是分组");
}
}
public class ColorItemWithNoHeaderViewHolder extends CardStackView.ViewHolder {
View mLayout;
TextView mTextTitle;
public ColorItemWithNoHeaderViewHolder(View view) {
super(view);
mLayout = view.findViewById(R.id.frame_list_card_item);
mTextTitle = (TextView) view.findViewById(R.id.text_list_card_title);
}
@Override
public void onItemExpand(boolean b) {
}
public void onBind(Integer data, int position) {
mLayout.getBackground().setColorFilter(ContextCompat.getColor(getContext(), data), PorterDuff.Mode.SRC_IN);
mTextTitle.setText(String.valueOf(position));
}
}
public class ColorItemLargeHeaderViewHolder extends CardStackView.ViewHolder {
View mLayout;
View mContainerContent;
TextView mTextTitle;
public ColorItemLargeHeaderViewHolder(View view) {
super(view);
mLayout = view.findViewById(R.id.frame_list_card_item);
mContainerContent = view.findViewById(R.id.container_list_content);
mTextTitle = (TextView) view.findViewById(R.id.text_list_card_title);
}
@Override
public void onItemExpand(boolean b) {
mContainerContent.setVisibility(b ? View.VISIBLE : View.GONE);
}
@Override
protected void onAnimationStateChange(int state, boolean willBeSelect) {
super.onAnimationStateChange(state, willBeSelect);
if (state == CardStackView.ANIMATION_STATE_START && willBeSelect) {
onItemExpand(true);
}
if (state == CardStackView.ANIMATION_STATE_END && !willBeSelect) {
onItemExpand(false);
}
}
public void onBind(Integer data, int position) {
mLayout.getBackground().setColorFilter(ContextCompat.getColor(getContext(), data), PorterDuff.Mode.SRC_IN);
mTextTitle.setText(String.valueOf(position));
itemView.findViewById(R.id.text_view).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((CardStackView) itemView.getParent()).performItemClick(ColorItemLargeHeaderViewHolder.this);
}
});
}
}
}

@ -0,0 +1,137 @@
package com.example.ChatContentPkg;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
import com.github.florent37.materialviewpager.header.MaterialViewPagerHeaderDecorator;
import com.loopeer.cardstack.AllMoveDownAnimatorAdapter;
import com.loopeer.cardstack.CardStackView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DrugFriendsFragment extends Fragment implements CardStackView.ItemExpendListener {
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
AppCompatActivity appCompatActivity;
RecyclerView mRecyclerView;
public static Fragment newInstance(AppCompatActivity appCompatActivity){
DrugFriendsFragment drugFriendsFragment = new DrugFriendsFragment();
drugFriendsFragment.setAppCompatActivity(appCompatActivity);
return drugFriendsFragment;
}
private CardStackView cardStackView;
private RecyclerView recyclerView;
private DrugFriendsCardAdapter drugFriendsCardAdapter;
//
private static Integer[] item = new Integer[]{R.color.color_1,
R.color.color_2,
R.color.color_3,
R.color.color_4,
R.color.color_5,
R.color.color_6,
R.color.color_7,
R.color.color_8,
R.color.color_9,
R.color.color_10,
R.color.color_11,
R.color.color_12,
R.color.color_13,
R.color.color_14,
R.color.color_15,
R.color.color_16,
R.color.color_17,
R.color.color_18,
R.color.color_19,
R.color.color_20,
R.color.color_21,
R.color.color_22,
R.color.color_23,
R.color.color_24,
R.color.color_25,
R.color.color_26};
public int ITEMS = 1;
public List<Object> items = new ArrayList<Object>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// View view = inflater.inflate(R.layout.drug_friends,container,false);
View view = inflater.inflate(R.layout.fragment_recyclerview,container,false);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRecyclerView=view.findViewById(R.id.recyclerView);
// mCardView = view.findViewById();
//需要根据网路请求发送数据来请求一个页可以有多少文章条目而且针对每一个tab都要有不同的显示方式
for (int i=0;i<ITEMS;i++){
items.add(new Object());
}
//设置布局
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.canScrollVertically();
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setHasFixedSize(true);
//设置分割线
mRecyclerView.addItemDecoration(new MaterialViewPagerHeaderDecorator());
//设置适配器
RecyclerViewPagerAdapter recyclerViewPagerAdapter = new RecyclerViewPagerAdapter(items,2);
recyclerViewPagerAdapter.setAppCompatActivity(appCompatActivity);
mRecyclerView.setAdapter(recyclerViewPagerAdapter);
// initWight(view);
}
// private void initWight(View view) {
//
//// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(appCompatActivity);
//// linearLayoutManager.canScrollVertically();
//// recyclerView.setLayoutManager(linearLayoutManager);
//
// cardStackView = (CardStackView) view.findViewById(R.id.stackview);
//
// drugFriendsCardAdapter = new DrugFriendsCardAdapter(appCompatActivity);
// drugFriendsCardAdapter.setAppCompatActivity(appCompatActivity);
//
// cardStackView.setAdapter(drugFriendsCardAdapter);
// cardStackView.setItemExpendListener(this);
//// cardStackView.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(cardStackView));
// new Handler().postDelayed(new Runnable() {
// @Override
// public void run() {
// drugFriendsCardAdapter.updateData(Arrays.asList(item));
// }
// },200);
// }
@Override
public void onItemExpend(boolean expend) {
}
}

@ -1,4 +1,4 @@
package com.example.PersonalCenter;
package com.example.ChatContentPkg;
import android.os.Bundle;
import android.view.LayoutInflater;
@ -30,7 +30,7 @@ public class RecyclerViewFragment extends Fragment {
this.flag = flag;
}
public static Fragment newInstance(int flag, AppCompatActivity appCompatActivity){
public static Fragment newInstance(int flag,AppCompatActivity appCompatActivity){
RecyclerViewFragment recyclerViewFragment = new RecyclerViewFragment();
recyclerViewFragment.setFlag(flag);
recyclerViewFragment.setAppCompatActivity(appCompatActivity);

@ -0,0 +1,128 @@
package com.example.ChatContentPkg;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
import com.loopeer.cardstack.CardStackView;
import com.ramotion.foldingcell.FoldingCell;
import java.util.Arrays;
import java.util.List;
public class RecyclerViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<Object> contents;
int flag;
AppCompatActivity appCompatActivity;
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public RecyclerViewPagerAdapter(List<Object> contents, int flag)
{
this.flag = flag;
this.contents = contents;
}
public int getItemCount() {
return contents.size();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
switch (flag){
case 0://论坛
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.internetforumfragment, parent, false);
//
// view = LayoutInflater.from(parent.getContext()).inflate(R.layout.drug_friends,parent,false);
FoldingCell foldingCell = view.findViewById(R.id.folding_cell);
foldingCell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
foldingCell.toggle(false);
}
});
return new RecyclerView.ViewHolder(view) {
};
case 1://动态
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.content_cardview, parent, false);
return new RecyclerView.ViewHolder(view) {
};
case 2://好友列表
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.drug_friends,parent,false);
CardStackView cardStackView = view.findViewById(R.id.stackview);
Integer[] item = new Integer[]{R.color.color_1,
R.color.color_2,
R.color.color_3,
R.color.color_4,
R.color.color_5,
R.color.color_6,
R.color.color_7,
R.color.color_8,
R.color.color_9,
R.color.color_10,
R.color.color_11,
R.color.color_12,
R.color.color_13,
R.color.color_14,
R.color.color_15,
R.color.color_16,
R.color.color_17,
R.color.color_18,
R.color.color_19,
R.color.color_20,
R.color.color_21,
R.color.color_22,
R.color.color_23,
R.color.color_24,
R.color.color_25,
R.color.color_26};
DrugFriendsCardAdapter drugFriendsCardAdapter = new DrugFriendsCardAdapter(parent.getContext());
drugFriendsCardAdapter.setAppCompatActivity(appCompatActivity);
cardStackView.setAdapter(drugFriendsCardAdapter);
cardStackView.setItemExpendListener(new CardStackView.ItemExpendListener() {
@Override
public void onItemExpend(boolean expend) {
}
});
// cardStackView.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(cardStackView));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
drugFriendsCardAdapter.updateData(Arrays.asList(item));
}
},200);
return new RecyclerView.ViewHolder(view) {
@Override
public String toString() {
return super.toString();
}
};
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//在这里设置某一个条目的监听
}
}

@ -0,0 +1,31 @@
package com.example.ChatContentPkg;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.example.cmknowledgegraph.R;
import com.ramotion.foldingcell.FoldingCell;
public class internetforum_fragment extends Fragment {
public static Fragment newInstance(){return new internetforum_fragment();}
FoldingCell foldingCell;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.internetforumfragment, container, false);
foldingCell = view.findViewById(R.id.folding_cell);
foldingCell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
foldingCell.toggle(false);
}
});
return view;
}
}

@ -0,0 +1,54 @@
package com.example.HomeContent;
/*
* bean
*
* */
public class SlideBean {
private int mItemBg;
private String mTitle;
private int mUserIcon;
private String mUserSay;
public SlideBean(int mItemBg, String mTitle, int mUserIcon, String mUserSay) {
this.mItemBg = mItemBg;
this.mTitle = mTitle;
this.mUserIcon = mUserIcon;
this.mUserSay = mUserSay;
}
public int getItemBg() {
return mItemBg;
}
public void setItemBg(int mItemBg) {
this.mItemBg = mItemBg;
}
public String getTitle() {
return mTitle;
}
public void setTitle(String mTitle) {
this.mTitle = mTitle;
}
public int getUserIcon() {
return mUserIcon;
}
public void setUserIcon(int mUserIcon) {
this.mUserIcon = mUserIcon;
}
public String getUserSay() {
return mUserSay;
}
public void setUserSay(String mUserSay) {
this.mUserSay = mUserSay;
}
}

@ -0,0 +1,314 @@
package com.example.HomeContent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.dingmouren.layoutmanagergroup.slide.ItemConfig;
import com.dingmouren.layoutmanagergroup.slide.ItemTouchHelperCallback;
import com.dingmouren.layoutmanagergroup.slide.OnSlideListener;
import com.dingmouren.layoutmanagergroup.slide.SlideLayoutManager;
import com.example.cmknowledgegraph.R;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.q42.android.scrollingimageview.ScrollingImageView;
import org.w3c.dom.Text;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
//这个是home的Fragment
public class SlideFragment extends Fragment {
private static final String TAG = "SlideFragment";
private RecyclerView mRecyclerView;
private SmileView mSmileView;
private SlideLayoutManager mSlideLayoutManager;
private ItemTouchHelper mItemTouchHelper;
private ItemTouchHelperCallback mItemTouchHelperCallback;
private MyAdapter mAdapter;
private MyAdapterItem myAdapterItem;
private List<SlideBean> mList = new ArrayList<>();
private int mLikeCount = 50;
private int mDislikeCount = 50;
private XRecyclerView xRecyclerView_home;
private ArrayList<TweetsBean> listData;
private int refreshtime = 0;
AppCompatActivity appCompatActivity;//保存最初的主Activity
public AppCompatActivity getAppCompatActivity(){
return appCompatActivity;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
private static final SlideFragment ourInstance = new SlideFragment();
public static SlideFragment getInstance() {
return ourInstance;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_slide, container, false);
initView(rootView);
initListener();//初始化监听器
return rootView;
}
private void initView(View rootView) {
listData = new ArrayList<TweetsBean>();
//表情那一块最热门推送top6
xRecyclerView_home = (XRecyclerView) rootView.findViewById(R.id.home_XRecyclerView);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(appCompatActivity);
//设置垂直布局
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//给mRecyclerView设置布局
xRecyclerView_home.setLayoutManager(linearLayoutManager);
xRecyclerView_home.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);
xRecyclerView_home.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
xRecyclerView_home.setArrowImageView(R.drawable._planet);
//建立header的view
View header = (RelativeLayout)LayoutInflater.from(appCompatActivity).inflate(R.layout.recycleview_header_home,appCompatActivity.findViewById(android.R.id.content),false);
mRecyclerView = header.findViewById(R.id.recycler_view);
mSmileView = header.findViewById(R.id.smile_view);
mSmileView.setLike(mLikeCount);
mSmileView.setDisLike(mDislikeCount);
mAdapter = new MyAdapter();
mRecyclerView.setAdapter(mAdapter);
addData(2);
mItemTouchHelperCallback = new ItemTouchHelperCallback(mRecyclerView.getAdapter(), mList);
mItemTouchHelper = new ItemTouchHelper(mItemTouchHelperCallback);
mSlideLayoutManager = new SlideLayoutManager(mRecyclerView, mItemTouchHelper);
mItemTouchHelper.attachToRecyclerView(mRecyclerView);
mRecyclerView.setLayoutManager(mSlideLayoutManager);
//为外层RecycleView增加嵌套RecycleView,嵌套在header
xRecyclerView_home.addHeaderView(header);
myAdapterItem = new MyAdapterItem(listData);
// for(int i=0;i<15;i++) {
// listData.add("item"+i);
// }
xRecyclerView_home.setAdapter(myAdapterItem);
xRecyclerView_home.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
refreshtime++;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
listData.clear();
addData(0);
myAdapterItem.notifyDataSetChanged();
xRecyclerView_home.refreshComplete();
}
},3000
);
}
@Override
public void onLoadMore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
addData(0);
myAdapterItem.notifyDataSetChanged();
xRecyclerView_home.loadMoreComplete();
}
},3000);
}
});
}
private void initListener() {
//往左滑就是不喜欢,往右滑就是喜欢
mItemTouchHelperCallback.setOnSlideListener(new OnSlideListener() {
@Override
public void onSliding(RecyclerView.ViewHolder viewHolder, float ratio, int direction) {
if (direction == ItemConfig.SLIDING_LEFT) {
} else if (direction == ItemConfig.SLIDING_RIGHT) {
}
}
@Override
public void onSlided(RecyclerView.ViewHolder viewHolder, Object o, int direction) {
if (direction == ItemConfig.SLIDED_LEFT) {
mDislikeCount--;
mSmileView.setDisLike(mDislikeCount);
mSmileView.disLikeAnimation();
} else if (direction == ItemConfig.SLIDED_RIGHT) {
mLikeCount++;
mSmileView.setLike(mLikeCount);
mSmileView.likeAnimation();
}
int position = viewHolder.getAdapterPosition();
Log.e(TAG, "onSlided--position:" + position);
}
@Override
public void onClear() {
// 一旦几个页面的数据加载完了,就在这里重新加载数据
addData(1);
}
});
}
/**
*
*
* 0item 1header 2
*/
private void addData(int flag){
int[] icons = {R.mipmap.header_icon_1, R.mipmap.header_icon_2, R.mipmap.header_icon_3,
R.mipmap.header_icon_4, R.mipmap.header_icon_1, R.mipmap.header_icon_2};
String[] titles = {"Acknowledging", "Belief", "Confidence", "Dreaming", "Happiness", "Confidence"};
String[] says = {
"Do one thing at a time, and do well.",
"Keep on going never give up.",
"Whatever is worth doing is worth doing well.",
"I can because i think i can.",
"Jack of all trades and master of none.",
"Keep on going never give up.",
"Whatever is worth doing is worth doing well.",
};
int[] bgs = {
R.drawable.draw9,
R.drawable.draw10,
R.drawable.draw6,
R.drawable.draw7,
R.drawable.draw7,
R.drawable.draw12
};
if(flag==1||flag==2)
for (int i = 0; i < 6; i++) {
mList.add(new SlideBean(bgs[i],titles[i],icons[i],says[i]));
}
if(flag==0||flag==2)
for(int i=0;i<10;i++){
listData.add(new TweetsBean(bgs[i%6],titles[i%6],icons[i%6],says[i%6]));
}
}
/**
*
*/
class MyAdapterItem extends RecyclerView.Adapter<MyAdapterItem.ViewHolder>{
public ArrayList<TweetsBean> datas = null;
public MyAdapterItem(ArrayList<TweetsBean> datas){
this.datas = datas;
}
@NonNull
@Override
public MyAdapterItem.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(appCompatActivity).inflate(R.layout.item_haha,parent,false);
ViewHolder vh = new ViewHolder(view);
return vh;
}
@Override
public void onBindViewHolder(@NonNull MyAdapterItem.ViewHolder holder, int position) {
Log.i("hah","j"+holder.mTextView);
TweetsBean tweetsBean = datas.get(position);
holder.mTextView.setText(tweetsBean.getUserSay());
holder.tvTitle.setText(tweetsBean.getTitle());
holder.imgBg.setImageResource(tweetsBean.getItemBg());
holder.userIcon.setImageResource(tweetsBean.getUserIcon());
}
@Override
public int getItemCount() {
return datas.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView mTextView;//文字部分
ImageView imgBg;//背景图片
ImageView userIcon;//读者头像
TextView tvTitle;//推文标题
public ViewHolder(View view){
super(view);
mTextView = (TextView) view.findViewById(R.id.text_item_view);
imgBg = (ImageView) view.findViewById(R.id.img_bg);
userIcon = (ImageView) view.findViewById(R.id.img_user);
tvTitle = (TextView) view.findViewById(R.id.text_item_view);
}
}
}
class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(appCompatActivity).inflate(R.layout.item_slide, parent, false);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("你呗","你点接了");
//这里可以设置点开文章好查看
// 可以新开一个Activity来查看文章
}
});
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
SlideBean bean = mList.get(position);
holder.imgBg.setImageResource(bean.getItemBg());
holder.tvTitle.setText(bean.getTitle());
holder.userIcon.setImageResource(bean.getUserIcon());
holder.userSay.setText(bean.getUserSay());
}
@Override
public int getItemCount() {
return mList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView imgBg;//背景图片
ImageView userIcon;//读者头像
TextView tvTitle;//推文标题
TextView userSay;//用户名或者到时候改成一段摘要也可以
public ViewHolder(View itemView) {
super(itemView);
imgBg = itemView.findViewById(R.id.img_bg);
userIcon = itemView.findViewById(R.id.img_user);
tvTitle = itemView.findViewById(R.id.tv_title);
userSay = itemView.findViewById(R.id.tv_user_say);
}
}
}
}

@ -0,0 +1,428 @@
package com.example.HomeContent;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.ColorDrawable;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.cmknowledgegraph.R;
/**
* Created by DELL on 2017/7/25.
*/
public class SmileView extends LinearLayout implements Animator.AnimatorListener {
//分割线间距
private int dividerMargin = 20;
private float count;
private int defalutBottom = 70;
private String defaultLike = "喜欢";
private String defalutDis = "无感";
private int defalutTextColor = Color.WHITE;
private String defaluteShadow = "#7F484848";
private int defalutGravity = Gravity.CENTER_HORIZONTAL;
private int defalutSize = dip2px(getContext(), 25);
private int like = 20;
private int disLike = 20; //点赞数,差评数
private float fLike, fDis;
private ImageView imageLike;
private ImageView imageDis;
private TextView likeNum, disNum, likeText, disText;
private LinearLayout likeBack, disBack, likeAll, disAll;
private AnimationDrawable animLike, animDis; //笑脸帧动画
private ValueAnimator animatorBack; //背景拉伸动画
private int type = 0; //选择执行帧动画的笑脸 //0 笑脸 1 哭脸
private boolean isClose = false; //判断收起动画
public SmileView setDefalutBottom(int defalutBottom) {
this.defalutBottom = defalutBottom;
return this;
}
public void notifyChange() {
init();
bindListener();
}
public void setDefalutGravity(int defalutGravity) {
this.defalutGravity = defalutGravity;
}
public void setDefalutDis(String defalutDis) {
this.defalutDis = defalutDis;
}
public void setDefaultLike(String defaultLike) {
this.defaultLike = defaultLike;
}
public SmileView setDividerMargin(int dividerMargin) {
this.dividerMargin = dividerMargin;
return this;
}
public void setDefalutSize(int defalutSize) {
this.defalutSize = defalutSize;
}
public void setNum(int like, int dislike) {
//设置百分比
count = like + dislike;
fLike = like / count;
fDis = dislike / count;
this.like = (int) (fLike * 100);
this.disLike = 100 - this.like;
setLike(this.like);
setDisLike(this.disLike);
}
public void setLike(int like) {
likeNum.setText(like + "");
}
public void setDisLike(int disLike) {
disNum.setText(disLike + "");
}
public SmileView(Context context) {
this(context, null);
}
public SmileView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public SmileView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
bindListener();
}
private void init() {
this.removeAllViews();
//初始化总布局
setOrientation(HORIZONTAL);
setGravity(defalutGravity | Gravity.BOTTOM);
setBackgroundColor(Color.TRANSPARENT); //开始透明
//设置百分比
float count = like + disLike;
fLike = like / count;
fDis = disLike / count;
like = (int) (fLike * 100);
disLike = (int) (fDis * 100);
//初始化图片
imageLike = new ImageView(getContext());
//添加动画资源 获得帧动画
imageLike.setBackgroundResource(R.drawable.animation_like);
animLike = (AnimationDrawable) imageLike.getBackground();
//初始化文字
likeNum = new TextView(getContext());
likeNum.setText(like + "");
likeNum.setTextColor(defalutTextColor);
TextPaint likeNumPaint = likeNum.getPaint();
likeNumPaint.setFakeBoldText(true);
likeNum.setTextSize(20f);
likeText = new TextView(getContext());
likeText.setText(defaultLike);
likeText.setTextColor(defalutTextColor);
imageDis = new ImageView(getContext());
imageDis.setBackgroundResource(R.drawable.animation_dislike);
animDis = (AnimationDrawable) imageDis.getBackground();
disNum = new TextView(getContext());
disNum.setText(disLike + "");
disNum.setTextColor(defalutTextColor);
TextPaint disNumPaint = disNum.getPaint();
disNumPaint.setFakeBoldText(true);
disNum.setTextSize(20f);
disText = new TextView(getContext());
disText.setText(defalutDis);
disText.setTextColor(defalutTextColor);
//初始化布局
likeBack = new LinearLayout(getContext());
disBack = new LinearLayout(getContext());
LayoutParams params2 = new LayoutParams(defalutSize, defalutSize);
likeBack.addView(imageLike, params2);
disBack.addView(imageDis, params2);
disBack.setBackgroundResource(R.drawable.white_background);
likeBack.setBackgroundResource(R.drawable.white_background);
//单列总布局
likeAll = new LinearLayout(getContext());
disAll = new LinearLayout(getContext());
likeAll.setOrientation(VERTICAL);
disAll.setOrientation(VERTICAL);
likeAll.setGravity(Gravity.CENTER_HORIZONTAL);
disAll.setGravity(Gravity.CENTER_HORIZONTAL);
likeAll.setBackgroundColor(Color.TRANSPARENT);
disAll.setBackgroundColor(Color.TRANSPARENT);
//添加文字图片放进一列
LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 10, 0, 0);
params.gravity = Gravity.CENTER;
disAll.setGravity(Gravity.CENTER_HORIZONTAL);
likeAll.setGravity(Gravity.RIGHT);
disAll.addView(disNum, params);
disAll.addView(disText, params);
disAll.addView(disBack, params);
likeAll.addView(likeNum, params);
likeAll.addView(likeText, params);
likeAll.addView(likeBack, params);
//中间分隔线
ImageView imageView = new ImageView(getContext());
imageView.setBackground(new ColorDrawable(Color.GRAY));
LayoutParams params4 = new LayoutParams(3, 80);
params4.setMargins(dividerMargin, 10, dividerMargin, defalutBottom + 20);
params4.gravity = Gravity.BOTTOM;
LayoutParams params3 = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params3.setMargins(30, 20, 30, defalutBottom);
params3.gravity = Gravity.BOTTOM;
addView(disAll, params3);
addView(imageView, params4);
addView(likeAll, params3);
//隐藏文字
setVisibities(GONE);
}
//
public void setVisibities(int v) {
likeNum.setVisibility(v);
disNum.setVisibility(v);
likeText.setVisibility(v);
disText.setVisibility(v);
}
//绑定监听
private void bindListener() {
imageDis.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/* type = 1; //设置动画对象
animBack(); //拉伸背景
setVisibities(VISIBLE); //隐藏文字
//切换背景色
setBackgroundColor(Color.TRANSPARENT);
likeBack.setBackgroundResource(R.drawable.white_background);
disBack.setBackgroundResource(R.drawable.yellow_background);
//重置帧动画
imageLike.setBackground(null);
imageLike.setBackgroundResource(R.drawable.animation_like);
animLike = (AnimationDrawable) imageLike.getBackground();*/
disLikeAnimation();
}
});
imageLike.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/* type = 0;
animBack();
setVisibities(VISIBLE);
setBackgroundColor(Color.TRANSPARENT);
disBack.setBackgroundResource(R.drawable.white_background);
likeBack.setBackgroundResource(R.drawable.yellow_background);
imageDis.setBackground(null);
imageDis.setBackgroundResource(R.drawable.animation_dislike);
animDis = (AnimationDrawable) imageDis.getBackground();*/
likeAnimation();
}
});
}
public void disLikeAnimation(){
type = 1; //设置动画对象
animBack(); //拉伸背景
setVisibities(VISIBLE); //隐藏文字
//切换背景色
setBackgroundColor(Color.parseColor(defaluteShadow));
likeBack.setBackgroundResource(R.drawable.white_background);
disBack.setBackgroundResource(R.drawable.yellow_background);
//重置帧动画
imageLike.setBackground(null);
imageLike.setBackgroundResource(R.drawable.animation_like);
animLike = (AnimationDrawable) imageLike.getBackground();
}
public void likeAnimation(){
type = 0;
animBack();
setVisibities(VISIBLE);
setBackgroundColor(Color.parseColor(defaluteShadow));
disBack.setBackgroundResource(R.drawable.white_background);
likeBack.setBackgroundResource(R.drawable.yellow_background);
imageDis.setBackground(null);
imageDis.setBackgroundResource(R.drawable.animation_dislike);
animDis = (AnimationDrawable) imageDis.getBackground();
}
//背景伸展动画
public void animBack() {
//动画执行中不能点击
imageDis.setClickable(false);
imageLike.setClickable(false);
final int max = Math.max(like * 4, disLike * 4);
animatorBack = ValueAnimator.ofInt(5, max);
animatorBack.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int magrin = (int) animation.getAnimatedValue();
LayoutParams paramsLike
= (LayoutParams) imageLike.getLayoutParams();
paramsLike.bottomMargin = magrin;
if (magrin <= like * 4) {
imageLike.setLayoutParams(paramsLike);
}
if (magrin <= disLike * 4) {
imageDis.setLayoutParams(paramsLike);
}
}
});
isClose = false;
animatorBack.addListener(this);
animatorBack.setDuration(500);
animatorBack.start();
}
//背景收回动画
public void setBackUp() {
final int max = Math.max(like * 4, disLike * 4);
animatorBack = ValueAnimator.ofInt(max, 5);
animatorBack.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int magrin = (int) animation.getAnimatedValue();
LayoutParams paramsLike
= (LayoutParams) imageLike.getLayoutParams();
paramsLike.bottomMargin = magrin;
if (magrin <= like * 4) {
imageLike.setLayoutParams(paramsLike);
}
if (magrin <= disLike * 4) {
imageDis.setLayoutParams(paramsLike);
}
}
});
animatorBack.addListener(this);
animatorBack.setDuration(500);
animatorBack.start();
}
@Override
public void onAnimationEnd(Animator animation) {
//重置帧动画
animDis.stop();
animLike.stop();
//关闭时不执行帧动画
if (isClose) {
//收回后可点击
imageDis.setClickable(true);
imageLike.setClickable(true);
//隐藏文字
setVisibities(GONE);
//恢复透明
setBackgroundColor(Color.TRANSPARENT);
return;
}
isClose = true;
if (type == 0) {
animLike.start();
objectY(imageLike);
} else {
animDis.start();
objectX(imageDis);
}
}
public void objectY(View view) {
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationY", -10.0f, 0.0f, 10.0f, 0.0f, -10.0f, 0.0f, 10.0f, 0);
animator.setRepeatMode(ObjectAnimator.RESTART);
//animator.setRepeatCount(1);
animator.setDuration(1500);
animator.start();
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
setBackUp(); //执行回弹动画
}
});
}
public void objectX(View view) {
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX", -10.0f, 0.0f, 10.0f, 0.0f, -10.0f, 0.0f, 10.0f, 0);
animator.setRepeatMode(ObjectAnimator.RESTART);
// animator.setRepeatCount(1);
animator.setDuration(1500);
animator.start();
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
setBackUp(); //执行回弹动画
}
});
}
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
//dp转px
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
//px转dp
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}

@ -0,0 +1,45 @@
package com.example.HomeContent;
public class TweetsBean {
private int mItemBg;
private String mTitle;
private int mUserIcon;
private String mUserSay;
public TweetsBean(int mItemBg, String mTitle, int mUserIcon, String mUserSay){
this.mItemBg = mItemBg;//截取图片
this.mTitle = mTitle;//标题
this.mUserIcon = mUserIcon;
this.mUserSay = mUserSay;//摘要
}
public int getItemBg() {
return mItemBg;
}
public void setItemBg(int mItemBg) {
this.mItemBg = mItemBg;
}
public String getTitle() {
return mTitle;
}
public void setTitle(String mTitle) {
this.mTitle = mTitle;
}
public int getUserIcon() {
return mUserIcon;
}
public void setUserIcon(int mUserIcon) {
this.mUserIcon = mUserIcon;
}
public String getUserSay() {
return mUserSay;
}
public void setUserSay(String mUserSay) {
this.mUserSay = mUserSay;
}
}

@ -0,0 +1,72 @@
//package com.example.PersonalCenter;
//
//import android.view.View;
//
//public class ArcView extends View {
// private int mWidth;
// private int mHeight;
// /**
// * 弧形高度
// */
// private int mArcHeight;
// /**
// * 背景颜色
// */
// private int mBgColor;
// private Paint mPaint;
// private Context mContext;
//
// public ArcView(Context context) {
// this(context, null);
// }
//
// public ArcView(Context context, @Nullable AttributeSet attrs) {
// this(context, attrs, 0);
// }
//
// public ArcView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
// super(context, attrs, defStyleAttr);
//
// TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ArcView);
// mArcHeight = typedArray.getDimensionPixelSize(R.styleable.ArcView_arcHeight, 0);
// mBgColor=typedArray.getColor(R.styleable.ArcView_bgColor,Color.parseColor("#303F9F"));
//
// mContext = context;
// mPaint = new Paint();
// }
//
// @Override
// protected void onDraw(Canvas canvas) {
// super.onDraw(canvas);
//
// mPaint.setStyle(Paint.Style.FILL);
// mPaint.setColor(mBgColor);
//
// Rect rect = new Rect(0, 0, mWidth, mHeight - mArcHeight);
// canvas.drawRect(rect, mPaint);
//
//
// Path path = new Path();
// path.moveTo(0, mHeight - mArcHeight);
// path.quadTo(mWidth / 2, mHeight, mWidth, mHeight - mArcHeight);
// canvas.drawPath(path, mPaint);
//
// }
//
// @Override
// protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// int widthSize = MeasureSpec.getSize(widthMeasureSpec);
// int widthMode = MeasureSpec.getMode(widthMeasureSpec);
// int heightSize = MeasureSpec.getSize(heightMeasureSpec);
// int heightMode = MeasureSpec.getMode(heightMeasureSpec);
//
// if (widthMode == MeasureSpec.EXACTLY) {
// mWidth = widthSize;
// }
// if (heightMode == MeasureSpec.EXACTLY) {
// mHeight = heightSize;
// }
// setMeasuredDimension(mWidth, mHeight);
// }
//}

@ -0,0 +1,56 @@
package com.example.PersonalCenter;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import com.squareup.picasso.Transformation;
class CircleTransformation implements Transformation {
private static final int STROKE_WIDTH = 6;
@Override
public Bitmap transform(Bitmap source) {
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
if (squaredBitmap != source) {
source.recycle();
}
Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());
Canvas canvas = new Canvas(bitmap);
Paint avatarPaint = new Paint();
BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
avatarPaint.setShader(shader);
Paint outlinePaint = new Paint();
outlinePaint.setColor(Color.WHITE);
outlinePaint.setStyle(Paint.Style.STROKE);
outlinePaint.setStrokeWidth(STROKE_WIDTH);
outlinePaint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, avatarPaint);
canvas.drawCircle(r, r, r - STROKE_WIDTH / 2, outlinePaint);
squaredBitmap.recycle();
return bitmap;
}
@Override
public String key() {
return "circleTransformation()";
}
}

@ -0,0 +1,55 @@
package com.example.PersonalCenter;
import android.app.Activity;
import android.graphics.Point;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.example.cmknowledgegraph.MainActivity;
import com.example.cmknowledgegraph.R;
import java.util.List;
public class EssayGalleryAdapter extends RecyclerView.Adapter<EssayGalleryAdapter.ViewHolder>{
private List<Image> data;
public EssayGalleryAdapter(List<Image> data) {
this.data = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.item_shop_card, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Glide.with(holder.itemView.getContext())
.load(data.get(position).getImage())
.into(holder.image);
}
@Override
public int getItemCount() {
return data.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private ImageView image;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.image);
}
}
}

@ -0,0 +1,97 @@
package com.example.PersonalCenter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextSwitcher;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
public class FeedAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private int itemsCount = 0;
public FeedAdapter(Context context) {
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(context).inflate(R.layout.item_feed, parent, false);
return new CellFeedViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
final CellFeedViewHolder holder = (CellFeedViewHolder) viewHolder;
bindDefaultFeedItem(position, holder);
}
private void bindDefaultFeedItem(int position, CellFeedViewHolder holder) {
if (position % 2 == 0) {
holder.ivFeedCenter.setImageResource(R.drawable.img_feed_center_1);
holder.ivFeedBottom.setImageResource(R.drawable.img_feed_bottom_1);
} else {
holder.ivFeedCenter.setImageResource(R.drawable.img_feed_center_2);
holder.ivFeedBottom.setImageResource(R.drawable.img_feed_bottom_2);
}
holder.btnComments.setTag(position);
holder.btnMore.setTag(position);
holder.ivFeedCenter.setTag(holder);
holder.btnLike.setTag(holder);
}
public void updateItems() {
itemsCount = 10;
notifyDataSetChanged();
}
@Override
public int getItemViewType(int position) {
return 1;
}
@Override
public int getItemCount() {
return itemsCount;
}
private static class CellFeedViewHolder extends RecyclerView.ViewHolder {
ImageView ivFeedCenter;
ImageView ivFeedBottom;
ImageButton btnComments;
ImageButton btnLike;
ImageButton btnMore;
TextSwitcher tsLikesCounter;
ImageView ivUserProfile;
FrameLayout vImageRoot;
CellFeedViewHolder(View view) {
super(view);
ivFeedCenter = (ImageView) view.findViewById(R.id.ivFeedCenter);
ivFeedBottom = (ImageView) view.findViewById(R.id.ivFeedBottom);
btnComments = (ImageButton) view.findViewById(R.id.btnComments);
btnLike = (ImageButton) view.findViewById(R.id.btnLike);
btnMore = (ImageButton) view.findViewById(R.id.btnMore);
tsLikesCounter = (TextSwitcher) view.findViewById(R.id.tsLikesCounter);
ivUserProfile = (ImageView) view.findViewById(R.id.ivUserProfile);
vImageRoot = (FrameLayout) view.findViewById(R.id.vImageRoot);
}
}
}

@ -0,0 +1,39 @@
package com.example.PersonalCenter;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
import com.alibaba.fastjson.JSON;
import com.example.cmknowledgegraph.LoginActivity;
import com.example.tools.retuData;
public class HandlerHandle extends Handler {
LoginActivity loginActivity;
public HandlerHandle(LoginActivity loginActivity){
this.loginActivity = loginActivity;
}
@Override
public void handleMessage(@NonNull Message msg) {
//根据登录状态请求不同的消息
super.handleMessage(msg);
// Bundle b = msg.getData();
// String data = b.getString("msg");
// Log.i("haha-====","==="+data);
//
// retuData retuData = JSON.parseObject(data, com.example.tools.retuData.class);
// if(retuData.msg.equals("success")){
// //登录成功,返回主页面
// }else{
//// 登录失败
// Toast.makeText(loginActivity, retuData.msg, Toast.LENGTH_SHORT).show();
//
//
// }
}
}

@ -0,0 +1,31 @@
package com.example.PersonalCenter;
public class Image {
private final int id;
private final String name;
private final String price;
private final int image;
public Image(int id, String name, String price, int image) {
this.id = id;
this.name = name;
this.price = price;
this.image = image;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPrice() {
return price;
}
public int getImage() {
return image;
}
}

@ -1,17 +1,17 @@
package com.example.PersonalCenter;
import android.view.animation.LinearInterpolator;
public class JellyInterpolator extends LinearInterpolator {
private float factor;
public JellyInterpolator() {
this.factor = 0.15f;
}
@Override
public float getInterpolation(float input) {
return (float) (Math.pow(2, -10 * input)
* Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1);
}
}
package com.example.PersonalCenter;
import android.view.animation.LinearInterpolator;
public class JellyInterpolator extends LinearInterpolator {
private float factor;
public JellyInterpolator() {
this.factor = 0.15f;
}
@Override
public float getInterpolation(float input) {
return (float) (Math.pow(2, -10 * input)
* Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1);
}
}

@ -0,0 +1,31 @@
package com.example.PersonalCenter;
import android.util.Log;
import com.example.tools.retuData;
import java.io.IOException;
public class Login {
private String password;
private String phonenumber;
public Login(String phonenumber,String password){
this.password = password;
this.phonenumber = phonenumber;
}
public String connUser() throws IOException {
String infoString = WebServiceGet.executeHttpGet(phonenumber,password,"/person/login");
// if(infoString.equals("false")){
// Log.i("Login","+++++++++++fail"+infoString);
// }else {
// Log.i("Login","+++++++++++successs"+infoString);
// }
//登录成功后返回用户名
Log.i("sucesss",infoString+"ha");
return infoString;
}
}

@ -1,309 +0,0 @@
package com.example.PersonalCenter.Login_Register;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.JellyInterpolator;
import com.example.Util.ConditionCode;
import com.example.Util.ReturnData;
import com.example.Util.ToolTip;
import com.example.Util.User;
import com.example.Util.cmkgWebServiceGet;
import com.example.Util.publicStringUtil;
import com.example.cmknowledgegraph.R;
import com.github.johnpersano.supertoasts.library.Style;
import com.github.johnpersano.supertoasts.library.SuperActivityToast;
import com.github.johnpersano.supertoasts.library.SuperToast;
import com.github.johnpersano.supertoasts.library.utils.PaletteUtils;
import java.lang.ref.WeakReference;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private TextView mBtnLogin;
private TextView getmBtnRegister;
AnimatorSet animatorSet;
private View progress;
private View mInputLayout;
private float mWidth, mHeight;
private LinearLayout mName, mPsw;
private final LoginHandler loginHandler = new LoginHandler(this);
//静态内部类,防止内存泄漏
public static class LoginHandler extends Handler{
private final WeakReference<LoginActivity> weakReference;
LoginHandler(LoginActivity activity){
this.weakReference = new WeakReference<LoginActivity>(activity);
}
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
LoginActivity loginActivity = (LoginActivity) weakReference.get();
Bundle bundle = msg.getData();
ReturnData messageJSON = (ReturnData) bundle.getSerializable("msg");
Log.i("msg",messageJSON+"");
if(messageJSON.getCode() == ConditionCode.loginsucess) {
// weakReference.get().mName.setVisibility(View.INVISIBLE);
// weakReference.get().mPsw.setVisibility(View.INVISIBLE);
// int mWidth = weakReference.get().mBtnLogin.getMeasuredWidth();
// int mHeight =weakReference.get().mBtnLogin.getMeasuredHeight();
//
// weakReference.get().inputAnimator(weakReference.get().mInputLayout, mWidth, mHeight);
String ReturnUsername = (String) messageJSON.getData();
User.setLogin(true);
User.getUser().setUsername(ReturnUsername);
loginActivity.finish();
}else {
Log.i("fjldsk==","fasf++++");
// 这里要让那个输入输出框还原
// weakReference.get().animatorSet.cancel();
weakReference.get().recovery();//执行复原动作
ToolTip.FadeCenter(weakReference.get(),messageJSON.getMsg());
}
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_login);
initView();
}
public void initView(){
mBtnLogin = (TextView) findViewById(R.id.main_btn_login);
getmBtnRegister = (TextView) findViewById(R.id.main_btn_register);
progress = findViewById(R.id.layout_progress);
mInputLayout = findViewById(R.id.input_layout);
mName = (LinearLayout) findViewById(R.id.id_edit);
mPsw = (LinearLayout) findViewById(R.id.password_edit);
//给登录设置监听
//给登陆功能设置设置监听
mBtnLogin.setOnClickListener(this);
getmBtnRegister.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//异步处理消息请求
int viewID = v.getId();
switch (viewID){
case R.id.main_btn_login:
//登录
//根据监听的不同内容,来改变响应状态
// 计算出控件的高与宽
// 隐藏输入框
//调入动画
//如果登录成功
//获取手机号和密码
EditText phonenumberEditText = (EditText) mName.getChildAt(1);
EditText passwordEditText = (EditText) mPsw.getChildAt(1);
if(phonenumberEditText==null||phonenumberEditText.getText().toString().equals("")){
//请输入用户名
ToolTip.FlyTocenter(this,"请输入手机号");
}else if(passwordEditText==null||passwordEditText.getText().toString().equals("")){
//请输入密码
ToolTip.FlyTocenter(this,"请输入密码");
}else{
String phonenumber = phonenumberEditText.getText().toString();
String password = passwordEditText.getText().toString();
if(phonenumber.length()!=11 || !phonenumber.matches("[0-9]+")){
ToolTip.FlyTocenter(this,"请输入正确手机号码");
}else {
// 基本没错误,就要请求登陆了
mName.setVisibility(View.INVISIBLE);
mPsw.setVisibility(View.INVISIBLE);
int mWidth = mBtnLogin.getMeasuredWidth();
int mHeight =mBtnLogin.getMeasuredHeight();
animatorSet = inputAnimator(mInputLayout, mWidth, mHeight);
new Thread(new Runnable() {
@Override
public void run() {
String argslogin = "phonenumber="+phonenumber+"&password="+password;
ReturnData retuData = cmkgWebServiceGet.executeHttpGet(argslogin, publicStringUtil.loginURL);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.i("returndat--", "-----" + retuData);
Message m = new Message();
Bundle b = new Bundle();
b.putSerializable("msg",retuData);
m.setData(b);
loginHandler.sendMessage(m);
}
}).start();
}
}
break;
case R.id.main_btn_register:
//注册
Intent intent = new Intent();
intent.setClass(this,RegisterActivity.class);
startActivity(intent);
}
}
//设置输入框动画效果
public AnimatorSet inputAnimator(final View view, float w, float h){
AnimatorSet set = new AnimatorSet();
ValueAnimator animator = ValueAnimator.ofFloat(0, w);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (Float) animation.getAnimatedValue();
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view
.getLayoutParams();
params.leftMargin = (int) value;
params.rightMargin = (int) value;
view.setLayoutParams(params);
}
});
ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout,
"scaleX", 1f, 0.5f);
set.setDuration(500);
set.setInterpolator(new AccelerateDecelerateInterpolator());
set.playTogether(animator,animator2);
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
Log.i("hkfd","End方法调用了");
progress.setVisibility(View.VISIBLE);
// progress.setVisibility(View.GONE);
progressAnimator(progress);
mInputLayout.setVisibility(View.INVISIBLE);
/**
*
*/
}
@Override
public void onAnimationCancel(Animator animation) {
Log.i("jie","=====Cancle方法");
progress.setVisibility(View.GONE);
}
});
set.start();
return set;
}
private void progressAnimator(final View view) {
PropertyValuesHolder animator = PropertyValuesHolder.ofFloat("scaleX",
0.5f, 1f);
PropertyValuesHolder animator2 = PropertyValuesHolder.ofFloat("scaleY",
0.5f, 1f);
ObjectAnimator animator3 = ObjectAnimator.ofPropertyValuesHolder(view,
animator, animator2);
animator3.setDuration(500);
animator3.setInterpolator(new JellyInterpolator());
animator3.start();
// animator3.cancel();
}
//登录错误,恢复初始状态
private void recovery() {
progress.setVisibility(View.INVISIBLE);
mInputLayout.setVisibility(View.VISIBLE);
mName.setVisibility(View.VISIBLE);
mPsw.setVisibility(View.VISIBLE);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mInputLayout.getLayoutParams();
params.leftMargin = 0;
params.rightMargin = 0;
mInputLayout.setLayoutParams(params);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout, "scaleX", 0.5f,1f );
animator2.setDuration(1000);
animator2.setInterpolator(new AccelerateDecelerateInterpolator());
animator2.start();
}
}

@ -1,204 +0,0 @@
package com.example.PersonalCenter.Login_Register;
import android.media.Image;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.fastjson.JSONArray;
import com.dd.CircularProgressButton;
import com.example.Util.ConditionCode;
import com.example.Util.RequestBody.user;
import com.example.Util.ReturnData;
import com.example.Util.ToolTip;
import com.example.Util.User;
import com.example.Util.cmkgWebServicePost;
import com.example.Util.publicStringUtil;
import com.example.cmknowledgegraph.R;
import com.hanks.library.AnimateCheckBox;
import com.itheima.wheelpicker.WheelPicker;
import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
private EditText phonenumberRegister;
private EditText usernameRegister;
private EditText passwordRegister;
private TextView RegisterButton;
private ImageView boycheckimg;
private ImageView girlcheckimg;
private AnimateCheckBox boycheck;
private AnimateCheckBox girlcheck;
private WheelPicker wheelPicker;
private final RegisterHandler registerHandler = new RegisterHandler(this);
public static class RegisterHandler extends Handler{
private final WeakReference<RegisterActivity> weakReference;
RegisterHandler(RegisterActivity registerActivity){
this.weakReference = new WeakReference<RegisterActivity>(registerActivity);
}
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
RegisterActivity registerActivity = (RegisterActivity) weakReference.get();
Bundle bundle = msg.getData();
ReturnData returnData = (ReturnData) bundle.getSerializable("msg");
if(returnData!=null && returnData.getCode()!=null){
int code = returnData.getCode();
if(code == ConditionCode.registersucess){
try {
Thread.sleep(700);
} catch (InterruptedException e) {
e.printStackTrace();
}
ToolTip.FadeCenter(weakReference.get(),"注册成功!");
weakReference.get().finish();
}else {
ToolTip.FlyTocenter(weakReference.get(),returnData.getMsg());
}
}else ToolTip.FlyTocenter(weakReference.get(),"服务器出了点小问题");
}
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_register);
initView();
}
private void initView() {
//获取各个控件
RegisterButton = findViewById(R.id.main_btn_register_but);
boycheck = findViewById(R.id.boycheck);
boycheckimg = findViewById(R.id.boycheckimg);
girlcheck = findViewById(R.id.girlcheck);
girlcheckimg = findViewById(R.id.girlcheckimg);
phonenumberRegister = findViewById(R.id.phonenumber_edit_register);
usernameRegister = findViewById(R.id.username_edit_register);
passwordRegister = findViewById(R.id.password_edit_register);
//给控件设置监听器
boycheck.setOnClickListener(this);
boycheckimg.setOnClickListener(this);
girlcheckimg.setOnClickListener(this);
girlcheck.setOnClickListener(this);
RegisterButton.setOnClickListener(this);
List<String> agewhellList = new ArrayList<String>();
for(int i=0;i<120;i++) agewhellList.add(i+"");
// wheelPicker.run();
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id){
case R.id.boycheck:
case R.id.boycheckimg:
if(!girlcheck.isChecked()){
if(boycheck.isChecked()) boycheck.setChecked(false); else boycheck.setChecked(true);
}
break;
case R.id.girlcheck:
case R.id.girlcheckimg:
if(!boycheck.isChecked()) {
if(girlcheck.isChecked()) girlcheck.setChecked(false); else girlcheck.setChecked(true);
}
break;
case R.id.main_btn_register_but:
Log.i("haha","你要注册了");
checkInfo();
}
}
public void checkInfo(){
// 先检查手机号
String phonenumber = phonenumberRegister.getText().toString();
if(phonenumber == null || phonenumber.length()!=11 || !phonenumber.matches("[0-9]+")){
ToolTip.FadeCenter(this,"请输入正确的手机号");
}else{
String username = usernameRegister.getText().toString();
if(username == null){
ToolTip.FadeCenter(this,"请输入用户名");
}else if(username.length()>14) ToolTip.FadeCenter(this,"用户名过长");
else {
String password = passwordRegister.getText().toString();
if(password == null){
ToolTip.FadeCenter(this,"请输入密码");
}else if(password.length()<6) ToolTip.FadeCenter(this, "密码至少为6位");
else if(password.length()>14) ToolTip.FadeCenter(this," 密码最多14位");
else {
if(boycheck.isChecked()){
user user = new user(phonenumber,username,password,0,0,"");
new Thread(new Runnable() {
@Override
public void run() {
Message m = new Message();
Bundle bundle = new Bundle();
ReturnData returnData = cmkgWebServicePost.execuHttpPost(user.toString(), publicStringUtil.registerURL);
Log.i("returndata",""+returnData);
bundle.putSerializable("msg", returnData);
m.setData(bundle);
registerHandler.sendMessage(m);
}
}).start();
}else if(girlcheck.isChecked()){
String args = "phonenumber="+phonenumber+"&username="+username+"&password="+password
+"&region="+""+"&age=0"+"&sex=0";
cmkgWebServicePost.execuHttpPost(args, publicStringUtil.registerURL);
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
Bundle bundle = new Bundle();
ReturnData returnData = cmkgWebServicePost.execuHttpPost(args,publicStringUtil.registerURL);
bundle.putSerializable("msg", returnData);
message.setData(bundle);
registerHandler.sendMessage(message);
}
}).start();
}else{
ToolTip.FadeCenter(this,"请选择性别");
}
}
}
}
}
}

@ -0,0 +1,101 @@
package com.example.PersonalCenter;
import com.example.cmknowledgegraph.R;
import com.google.android.material.navigation.NavigationView;
import com.squareup.picasso.Picasso;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
/**
*
* MenuListFragment
* FragmentFragment
*/
public class MenuListFragment extends Fragment {
private ImageView ivMenuUserProfilePhoto;
public AppCompatActivity appCompatActivity;
public TextView textView;
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public AppCompatActivity getAppCompatActivity() {
return appCompatActivity;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_menu, container,false);
//获取基本的菜单xml
NavigationView linearLayout = (NavigationView) view.findViewById(R.id.vNavigation);
View headview = linearLayout.getHeaderView(0);
//获取菜单头
//获取菜单头
//获取用户的头像
ivMenuUserProfilePhoto = (ImageView) headview.findViewById(R.id.ivMenuUserProfilePhoto);
//获取xml中的用户名id
textView = (TextView) headview.findViewById(R.id.user_name_menu);
NavigationView vNavigation = (NavigationView) view.findViewById(R.id.vNavigation);
//设置某个菜单呗选中
vNavigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Toast.makeText(getActivity(),menuItem.getTitle(),Toast.LENGTH_SHORT).show();
return false;
}
}) ;
setupHeader();
return view ;
}
private void setupHeader() {
int avatarSize = getResources().getDimensionPixelSize(R.dimen.global_menu_avatar_size);
/*
*
* */
// Picasso.with(getAppCompatActivity())
// .load(R.drawable.tiantiansifangmao_09)
//// .placeholder(R.drawable.img_circle_placeholder)
// .into(ivMenuUserProfilePhoto);
avatarOnclickListener headerListener = new avatarOnclickListener(getAppCompatActivity(),this);
ivMenuUserProfilePhoto.setOnClickListener(headerListener);
//设置用户名
if(User.isLogin()){
textView.setText(User.getUser().getUsername());
}
}
}

@ -1,51 +1,222 @@
package com.example.PersonalCenter;
import android.animation.ArgbEvaluator;
import android.app.Person;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Outline;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.example.PersonalCenter.Login_Register.LoginActivity;
import com.example.Util.User;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.example.PersonalCenter.FeedAdapter;
import com.example.PersonalCenter.MenuListFragment;
import com.example.cmknowledgegraph.MainActivity;
import com.example.cmknowledgegraph.R;
import com.hanks.htextview.rainbow.RainbowTextView;
import com.mxn.soul.flowingdrawer_core.ElasticDrawer;
import com.mxn.soul.flowingdrawer_core.FlowingDrawer;
import com.skyfishjy.library.RippleBackground;
import com.squareup.picasso.Picasso;
import com.yarolegovich.discretescrollview.DSVOrientation;
import com.yarolegovich.discretescrollview.DiscreteScrollView;
import com.yarolegovich.discretescrollview.InfiniteScrollAdapter;
import com.yarolegovich.discretescrollview.transform.ScaleTransformer;
public class PersonContent extends Fragment {
import java.util.List;
import de.hdodenhof.circleimageview.CircleImageView;
public class PersonContent extends Fragment {
protected int res;
private FlowingDrawer mDrawer;
AppCompatActivity appCompatActivity;
public AppCompatActivity getAppCompatActivity() {
return appCompatActivity;
}
// 与滚动文章有关的变量
private List<Image> data;
private essayGallary essayGallary;
// private TextView currentItemName;
// private TextView currentItemPrice;
private ImageView rateItemButton;
private DiscreteScrollView itemPicker;
private InfiniteScrollAdapter infiniteAdapter;
// 与滚动文章有关的变量
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
MainActivity mainActivity = (MainActivity) context;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate( R.layout.activity_personality_center, container, false ); //要加载的layout文件
}
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Button login_pc_btn = (Button) getActivity().findViewById(R.id.login_pc_button);
login_pc_btn.setOnClickListener(new View.OnClickListener() {
mDrawer = (FlowingDrawer) appCompatActivity.findViewById(R.id.drawerlayout);
mDrawer.setTouchMode(ElasticDrawer.TOUCH_MODE_BEZEL);
//设置工具栏
setuptoolbar();
//设置侧滑菜单
setupMenu();
}
protected void setuptoolbar(){
//分别设置背景和头像
//背景
// ImageView blurimageView = (ImageView) appCompatActivity.findViewById(R.id.iv_blur);
//背景波纹图
// RippleBackground linearimageView = (RippleBackground) appCompatActivity.findViewById(R.id.linearcontent);
// linearimageView.startRippleAnimation();
//头像
ImageView avatarImageView = (ImageView) appCompatActivity.findViewById(R.id.iv_avatar);
// Picasso.with(appCompatActivity).load("http://114.55.30.62:8080/product_pictures/a.jpg").into(avatarImageView);
// Picasso.get().load("http://114.55.30.62:8080/product_pictures/a.jpg").into(avatarImageView);
Glide.with(getAppCompatActivity()).load(R.drawable.draw7).into(avatarImageView);
ViewOutlineProvider vop = new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
//修改outline
outline.setOval(0,0,view.getWidth(),view.getHeight());
}};
avatarImageView.setOutlineProvider(vop);
//二维码
ImageView QRcodeImageView = (ImageView) appCompatActivity.findViewById(R.id.QRCode);
Glide.with(getAppCompatActivity()).load(R.drawable.qrcodeimage).into(QRcodeImageView);
// Animation anim = AnimationUtils.loadAnimation(appCompatActivity,R.anim.anim_rotate);
// anim.setDuration(14000);
// avatarImageView.startAnimation(anim);
// ImageView drugImageView = (ImageView) appCompatActivity.findViewById(R.id.drug_essays);
//drugessays(像动态一样)
// Animation animessays = AnimationUtils.loadAnimation(appCompatActivity,R.anim.anim_drugessays);
// animessays.setDuration(12000);
// drugImageView.startAnimation(animessays);
// Glide.with(appCompatActivity).load(R.drawable.draw6).into(avatarImageView);
//用户名
final TextView rainbowTextView = (TextView) appCompatActivity.findViewById(R.id.person_username);
rainbowTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到LoginActivity
if(!User.isLogin){
Intent intent=new Intent();
intent.setClass(getActivity(), LoginActivity.class);
startActivity(intent);
}
}
});
//菜单图片按钮
ImageView menuImageview = (ImageView) appCompatActivity.findViewById(R.id.set_image);
menuImageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawer.toggleMenu();
}
});
/*
*
* *******
* // 设置滚动的文章按钮,文章画廊
* ****
* */
// currentItemName = (TextView) appCompatActivity.findViewById(R.id.item_name);
// currentItemPrice = (TextView) appCompatActivity.findViewById(R.id.item_price);
// rateItemButton = (ImageView) appCompatActivity.findViewById(R.id.item_btn_rate);
essayGallary = essayGallary.get();
data = essayGallary.getData();
itemPicker = (DiscreteScrollView) appCompatActivity.findViewById(R.id.item_picker);
itemPicker.setOrientation(DSVOrientation.HORIZONTAL);
itemPicker.addOnItemChangedListener(new DiscreteScrollView.OnItemChangedListener<EssayGalleryAdapter.ViewHolder>() {
@Override
public void onCurrentItemChanged(@Nullable EssayGalleryAdapter.ViewHolder viewHolder, int i) {
int positionInDataSet = infiniteAdapter.getRealPosition(i);
onItemChanged(data.get(positionInDataSet));
}
});
infiniteAdapter = InfiniteScrollAdapter.wrap(new EssayGalleryAdapter(data));
itemPicker.setAdapter(infiniteAdapter);
itemPicker.setItemTransitionTimeMillis(150);
itemPicker.setItemTransformer(new ScaleTransformer.Builder()
.setMinScale(0.8f)
.build());
onItemChanged(data.get(0));
/*
*
*
*
*
* */
avatarOnclickListener avatarOnclickListener = new avatarOnclickListener(getAppCompatActivity(),this);
avatarOnclickListener.setFlowingDrawerl(mDrawer);
avatarImageView.setOnClickListener(avatarOnclickListener);
}
@Override
public void onResume() {
super.onResume();
if(User.isLogin){
Button longin_pc_btn=(Button) getActivity().findViewById(R.id.login_pc_button);
longin_pc_btn.setText("Hello"+User.getUser().getUsername());
//设置菜单
private void setupMenu() {
FragmentManager fm = appCompatActivity.getSupportFragmentManager();//获取Fragment管理器
MenuListFragment mMenuFragment = (MenuListFragment) fm.findFragmentById(R.id.id_container_menu);
if (mMenuFragment == null) {
Log.i("is","------------it null");
mMenuFragment = new MenuListFragment();
mMenuFragment.setAppCompatActivity(getAppCompatActivity());
fm.beginTransaction().add(R.id.id_container_menu, mMenuFragment).commit();
//向activity添加一个布局
}
//高血压
}
//有关文章滚动画廊的方法
private void onItemChanged(Image item) {
// currentItemName.setText(item.getName());
// currentItemPrice.setText(item.getPrice());
// changeRateButtonState(item);
}
}

@ -1,81 +0,0 @@
package com.example.PersonalCenter;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
import com.github.florent37.materialviewpager.header.MaterialViewPagerHeaderDecorator;
import java.util.ArrayList;
import java.util.List;
public class RecyclerViewFragmentINFO extends Fragment{
int flag;
AppCompatActivity appCompatActivity;
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public void setFlag(int flag) {
this.flag = flag;
}
public static Fragment newInstance(int flag, AppCompatActivity appCompatActivity){
RecyclerViewFragmentINFO recyclerViewFragmentinfo = new RecyclerViewFragmentINFO();
recyclerViewFragmentinfo.setFlag(flag);
recyclerViewFragmentinfo.setAppCompatActivity(appCompatActivity);
return recyclerViewFragmentinfo;
}
final List<Object> items = new ArrayList<>();
static final int ITEMS = 1;
RecyclerView mRecyclerView;
CardView mCardView;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_recyclerview, container, false);
}
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRecyclerView=view.findViewById(R.id.recyclerView);
// mCardView = view.findViewById();
//需要根据网路请求发送数据来请求一个页可以有多少文章条目而且针对每一个tab都要有不同的显示方式
for (int i=0;i<ITEMS;i++){
items.add(new Object());
}
Log.i("jk==",""+ITEMS);
//设置布局
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.canScrollVertically();
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setHasFixedSize(true);
//设置分割线
mRecyclerView.addItemDecoration(new MaterialViewPagerHeaderDecorator());
//设置适配器
RecyclerViewPagerAdapter recyclerViewPagerAdapter = new RecyclerViewPagerAdapter(items,flag);
recyclerViewPagerAdapter.setAppCompatActivity(appCompatActivity);
mRecyclerView.setAdapter(recyclerViewPagerAdapter);
}
public void initdata(){
//初始化数据类,请求网络
}
}

@ -1,83 +0,0 @@
package com.example.PersonalCenter;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.example.cmknowledgegraph.R;
import com.loopeer.cardstack.CardStackView;
import com.ramotion.foldingcell.FoldingCell;
import java.util.Arrays;
import java.util.List;
public class RecyclerViewPagerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<Object> contents;
int flag;
AppCompatActivity appCompatActivity;
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
public RecyclerViewPagerAdapter(List<Object> contents, int flag)
{
this.flag = flag;
this.contents = contents;
}
public int getItemCount() {
return contents.size();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
switch (flag){
case 0://论坛
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.cell, parent, false);
//
// view = LayoutInflater.from(parent.getContext()).inflate(R.layout.drug_friends,parent,false);
FoldingCell foldingCell = view.findViewById(R.id.folding_cell_new);
foldingCell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
foldingCell.toggle(false);
}
});
return new RecyclerView.ViewHolder(view) {
};
case 1://动态
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.personinfomain, parent, false);
return new RecyclerView.ViewHolder(view) {
};
case 2://好友列表
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.content_cardview, parent, false);
return new RecyclerView.ViewHolder(view) {
};
//
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
//在这里设置某一个条目的监听
}
}

@ -0,0 +1,20 @@
package com.example.PersonalCenter;
public class Register {
String phonenumber;
String username;
String password;
public Register(String phonenumber, String username, String password){
this.phonenumber = phonenumber;
this.username = username;
this.password = password;
}
public boolean regist(){
String regRet = WebServicePost.execuHttpPost(username, phonenumber, password,"/Register");
if(regRet.equals("true")){
return true;
}else {
return false;
}
}
}

@ -0,0 +1,47 @@
package com.example.PersonalCenter;
import android.util.Log;
import com.hankcs.hanlp.HanLP;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Search {
public String sickname;
public Search(String sickname){
this.sickname = sickname;
}
public List<Set<String>> search(){
Log.i("search","sick执行了");
//找出对应的8个关键字
List<String> keywordList = HanLP.extractKeyword(sickname,8);
//针对每一个sickname来查找一下能不能够找到相应的名字
Set<String> mediciesSet = new HashSet<String>();
Set<String> reasonsSet = new HashSet<String>();
for(String i: keywordList){
Log.i("关键词提取",i+"ha");
String resq = SearchServiceGet.executeSearchGet(i,"/Search");
if(!resq.equals("fail")) {
String[] me_rea = resq.split("-");
String[] medicines = me_rea[0].split("\\|");
for(String j: medicines) mediciesSet.add(j);
String[] reasons = me_rea[1].split("\\|");
for(String j: reasons) reasonsSet.add(j);
}
}
List<Set<String>> a = new ArrayList<Set<String>>();
a.add(mediciesSet);
a.add(reasonsSet);
return a;
}
}

@ -0,0 +1,63 @@
package com.example.PersonalCenter;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
public class SearchServiceGet {
public static String executeSearchGet(String sickname,String address){
HttpURLConnection connection = null;
InputStream in = null;
String Url = "http://106.54.210.208:8080/ChineseM"+address;
String path = Url + "?sickname="+sickname;
URL url = null;
try {
url = new URL(path);
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(100000);//建立连接超时
connection.setReadTimeout(80000);//传输数据超时
in = connection.getInputStream();
BufferedReader reader = null;//输入流
String line = "";//读取返回的每一行
StringBuilder response = new StringBuilder();
try {
reader = new BufferedReader(new InputStreamReader(in));
while((line = reader.readLine()) != null) {
response.append(line);
}
//这时候response就是一个连续字符串了吧
Log.i("response+++++",response+"返回值");
return response.toString();
//
} catch (IOException e) {
e.printStackTrace();
}finally {
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
}

@ -0,0 +1,32 @@
package com.example.PersonalCenter;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.widget.FrameLayout;
public class SquaredFrameLayout extends FrameLayout {
public SquaredFrameLayout(Context context) {
super(context);
}
public SquaredFrameLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquaredFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public SquaredFrameLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
}

@ -1,4 +1,4 @@
package com.example.Util;
package com.example.PersonalCenter;
/*
@ -11,22 +11,20 @@ public class User {
private static User user;//保存某一个用户
private String phonenumber;
private String username;
private String region;
private String avatar_url;
private String sex;
private Long age;
public static boolean isLogin = false;//是否登录
private User(){}
public static synchronized User getUser(){
if (user==null){
user = new User();
}
return user;
}
public static void setUser(String phonenumber, String username, String region, String sex, Long age) {
public static void setUser(String phonenumber, String username, String avatar_url, String sex, Long age) {
user.setAge(age);
user.setRegion(region);
user.setAvatar_url(avatar_url);
user.setPhonenumber(phonenumber);
user.setUsername(username);
user.setSex(sex);
@ -43,7 +41,7 @@ public class User {
//注销
public static void logoff(){
user.setAge(null);
user.setRegion(null);
user.setAvatar_url(null);
user.setPhonenumber(null);
user.setUsername(null);
user.setSex(null);
@ -58,12 +56,8 @@ public class User {
this.username = username;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
public void setAvatar_url(String avatar_url) {
this.avatar_url = avatar_url;
}
public void setSex(String sex) {
@ -82,7 +76,9 @@ public class User {
return username;
}
public String getAvatar_url() {
return avatar_url;
}
public String getSex() {
return sex;

@ -1,4 +1,9 @@
package com.example.Util;
package com.example.PersonalCenter;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.example.tools.retuData;
import java.io.BufferedReader;
import java.io.IOException;
@ -8,35 +13,45 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class WebServiceGet {
public static String executeHttpGet(String phonenumber,String password,String address){
public static String UrlPath = "http://114.55.37.70/CMKnowledgeGraph";//服务器项目的总请求路径
//登录请求
public static String executeHttpGet(String phonenumber,String password,String address) {
HttpURLConnection connection = null;
InputStream in = null;
InputStream br = null;
String Url = "http://106.54.210.208:8080/ChineseM"+address;
String Url = UrlPath + address;
String path = Url+"?phonenumber=" + phonenumber + "&password=" + password;
Log.i("login---====--",""+path);
URL url = null;
try {
url = new URL(path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = (HttpURLConnection)url.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(100000);
connection.setReadTimeout(80000);
connection.setRequestMethod("GET");
connection.setConnectTimeout(100000);//建立连接超时
connection.setReadTimeout(80000);//传输数据超时
in = connection.getInputStream();
return parseInfo(in);
//获取结果
// int responseCode = connection.getResponseCode();
// if(responseCode == 200){
br = connection.getInputStream();
String readline = parseInfo(br);
return readline;
// }
} catch (IOException e) {
e.printStackTrace();
}finally {
if(connection != null){
if(connection!=null){
connection.disconnect();
}
if(in != null){
if(br!=null){
try {
in.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}

@ -1,4 +1,4 @@
package com.example.Util;
package com.example.PersonalCenter;
import android.util.Log;
@ -30,7 +30,7 @@ public class WebServicePost {
connection.setRequestMethod("POST");
connection.setReadTimeout(8000);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type","application/json");
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.connect();
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
String data = "username="+ URLEncoder.encode(username,"UTF-8")+"&phonenumber="+URLEncoder.encode(phonenumber,"UTF-8")+"&password="+URLEncoder.encode(password,"UTF-8");

@ -0,0 +1,50 @@
package com.example.PersonalCenter;
import android.content.Intent;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import com.example.cmknowledgegraph.LoginActivity;
import com.mxn.soul.flowingdrawer_core.FlowingDrawer;
/*
*
*
*
*
* */
public class avatarOnclickListener implements View.OnClickListener {
AppCompatActivity appCompatActivity;
Fragment personFragment;
private FlowingDrawer flowingDrawerl;
public FlowingDrawer getFlowingDrawerl() {
return flowingDrawerl;
}
public void setFlowingDrawerl(FlowingDrawer flowingDrawerl){
this.flowingDrawerl = flowingDrawerl;
}
public avatarOnclickListener(AppCompatActivity appCompatActivity, Fragment fragment){
this.personFragment = fragment;
this.appCompatActivity = appCompatActivity;
}
@Override
public void onClick(View v) {
//这里监听就是如果未登录就跳到登录界面
if(User.isLogin()){
//登陆了,登录了点击主界面头像就可以打开左边菜单栏
flowingDrawerl.toggleMenu();
}else{
//没有登录
//跳转到登录界面
Intent intent=new Intent();
intent.setClass(appCompatActivity, LoginActivity.class);
personFragment.startActivity(intent);
}
//如果登录了就跳到个人信息界面
}
}

@ -0,0 +1,43 @@
package com.example.PersonalCenter;
import android.content.Context;
import android.content.SharedPreferences;
import com.example.cmknowledgegraph.R;
import java.util.Arrays;
import java.util.List;
/*
*
* */
public class essayGallary {
private static final String STORAGE = "shop";
public static essayGallary get() {
return new essayGallary();
}
// private SharedPreferences storage;
//
// private Shop() {
// storage = getInstance().getSharedPreferences(STORAGE, Context.MODE_PRIVATE);
// }
public List<Image> getData() {
return Arrays.asList(
new Image(1, "文章1", "概要1", R.drawable.draw6),
new Image(2, "文章2", "概要2", R.drawable.draw6),
new Image(3, "文章3", "概要3", R.drawable.draw6),
new Image(4, "文章4", "概要4", R.drawable.draw6),
new Image(5, "文章5", "概要5", R.drawable.draw6),
new Image(6, "文章6", "概要6", R.drawable.draw6));
}
// public boolean isRated(int itemId) {
// return storage.getBoolean(String.valueOf(itemId), false);
// }
//
// public void setRated(int itemId, boolean isRated) {
// storage.edit().putBoolean(String.valueOf(itemId), isRated).apply();
// }
}

@ -1,151 +0,0 @@
package com.example.SearchCenter;
import android.content.Context;
import android.graphics.PorterDuff;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.Util.ConditionCode;
import com.example.Util.ReturnData;
import com.example.cmknowledgegraph.R;
import com.loopeer.cardstack.CardStackView;
import com.loopeer.cardstack.StackAdapter;
import java.util.List;
public class CMKGStackAdapter extends StackAdapter<Integer> implements ConditionCode {
List<List<ContentData>> contentList;
ReturnData returnData;
/**
*
*
*/
static int title_num=0;//标题的数目
public CMKGStackAdapter(Context context, ReturnData returnData)
{
super(context);
//mContext = context;
this.returnData = returnData;
}
protected CardStackView.ViewHolder onCreateView(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cmkg_item,parent,false); //通过LayoutInflater加载布局
CardViewHolder holder = new CardViewHolder(view);
System.out.println("onCreateView");
return holder;
}
public int getItemViewType(int position) {
System.out.println("getItemViewType");
return super.getItemViewType(position);
}
/**
*
*/
public int getItemCount() {
System.out.println("getItemCount");
return super.getItemCount();
}
/**
* StackAdapter updateData(List data)
* @param data
* @param lessonList
*/
public void updateData(List data, List<List<ContentData>> lessonList) {
this.contentList = lessonList;
updateData(data);
System.out.println("Updata!*****************************");
}
public void bindView(Integer data, int position, CardStackView.ViewHolder holder) {
if(holder instanceof CardViewHolder)
{
CardViewHolder cardHolder = (CardViewHolder)holder;
cardHolder.onBind(data,position,contentList,returnData);
}
System.out.println("bindView");
}
/**
* onCreateViewViewHolder使
*/
public static class CardViewHolder extends CardStackView.ViewHolder
{
View root;
FrameLayout cardTitle; //布局头部
RecyclerView scoreList; //布局头部下方的RecyclerView
TextView titleText; //布局头部中的标题
public CardViewHolder(View view)
{
/*
ViewHolder
*/
super(view);
root = view;
cardTitle = (FrameLayout)view.findViewById(R.id.card_title);
titleText = (TextView)view.findViewById(R.id.card_title_text);
scoreList = (RecyclerView)view.findViewById(R.id.scores_list);
System.out.println("CardViewHolder constructor");
}
public void onBind(Integer backgroundColorId,int position,List<List<ContentData>> dataList,ReturnData returnData)
{
/*
bindView ViewHolderbindViewViewHolderonBind使
*/
/**
* v -
* * -
* * -
* * -
*/
if(returnData.getCode()==DiseaseToSymptom||returnData.getCode()==MedicineToOperation){
//对应病症,那么标题只有一个就是病的名字
titleText.setText(returnData.getMsg());
}else if(returnData.getCode()==DiseaseToMedicines){
//对应治疗方法,那么标题就要有多个
titleText.setText(SearchEntryActivity.content.get(title_num));
title_num++;
if(title_num==SearchEntryActivity.content.size())
title_num=0;
}else{
if(title_num==0) {
titleText.setText(returnData.getMsg());
title_num++;
}
else {
titleText.setText("可以治疗的病症");
title_num=0;
}
}
cardTitle.getBackground().setColorFilter(ContextCompat.getColor(getContext(),backgroundColorId), PorterDuff.Mode.SRC_IN);//传入的int值其实是一个颜色在这里改变头部的颜色
System.out.println("========================"+position);
ListAdapter adapter = new ListAdapter(dataList.get(position));
scoreList.setLayoutManager(new LinearLayoutManager(getContext()));
scoreList.setAdapter(adapter);
System.out.println("holder onBind");
}
@Override
public void onItemExpand(boolean b) {
/*
Item
*/
scoreList.setVisibility(b ? View.VISIBLE : View.GONE);
System.out.println("holder onItemExpand");
}
}
}

@ -1,19 +0,0 @@
package com.example.SearchCenter;
public class ContentData {
private String contentdata;
public ContentData(String content) {
this.contentdata = content;
}
public String getContentdata() {
return contentdata;
}
public void setContentdata(String contentdata) {
this.contentdata = contentdata;
}
}

@ -1,52 +0,0 @@
package com.example.SearchCenter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.example.Util.ConditionCode;
import com.example.cmknowledgegraph.R;
import java.util.List;
/**
* Created by LZL on 2017/7/16.
*/
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ScoresViewHodler> implements ConditionCode {
List<ContentData> content_list;
public ListAdapter(List<ContentData> list)
{
content_list = list;
}
public static class ScoresViewHodler extends RecyclerView.ViewHolder
{
TextView search_content; //内容
public ScoresViewHodler(View view)
{
super(view);
search_content=(TextView)view.findViewById(R.id.search_content);
}
}
@Override
public void onBindViewHolder(ScoresViewHodler holder, int position) {
holder.search_content.setText(content_list.get(position).getContentdata());
}
@Override
public ScoresViewHodler onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cmkg_list_item,parent,false);
return new ScoresViewHodler(view);
}
@Override
public int getItemCount() {
return content_list.size();
}
}

@ -1,34 +0,0 @@
//package com.example.SearchCenter;
//
//import android.os.Bundle;
//import android.util.Log;
//import android.view.View;
//import android.widget.Button;
//import android.widget.EditText;
//import android.widget.ImageButton;
//
//import androidx.appcompat.app.AppCompatActivity;
//
//import com.example.PersonalCenter.Search;
//import com.example.cmknowledgegraph.R;
////
//public class SearchActivity extends AppCompatActivity {
//
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_search);
// EditText search_edit_frame = findViewById(R.id.search_edit);
// ImageButton search_btn = findViewById(R.id.search_btn);
// String sickname = search_edit_frame.getText().toString();
//
// search_btn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
//// Search search = new Search(sickname);
//// search.search();
// }
// });
// }
//}

@ -1,114 +0,0 @@
package com.example.SearchCenter;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.ImageButton;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.example.Util.ConditionCode;
import com.example.Util.ReturnData;
import com.example.Util.cmkgWebServiceGet;
import com.example.Util.publicStringUtil;
import com.example.cmknowledgegraph.MainActivity;
import com.example.cmknowledgegraph.R;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.Set;
//
public class SearchContent extends Fragment {
public static List<Set<String>> a;
public static int k=0;
MainActivity mainActivity;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate( R.layout.activity_search, container, false ); //要加载的layout文件
}
// 将Activity传过来避免重复调用和Fragment嵌套的麻烦
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.mainActivity = (MainActivity) context;
}
//全局的消息处理handle
private final SearchHandler searchHandler = new SearchHandler(mainActivity);
//静态内部类,避免内存泄漏
public static class SearchHandler extends Handler {
//持有对父Activity的弱引用防止强引用导致这个消息处理非常耗时时
// 导致这个SearchContent不能被回收最终内存泄漏
//在这个静态内部类里面需要使用get()方法来获取SearchActivity操作Activity
private final WeakReference<MainActivity> weakReference;
SearchHandler(MainActivity activity){
this.weakReference = new WeakReference<MainActivity>(activity);
}
//在这里处理消息
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
//将消息中的数据取出来
MainActivity mainActivity = (MainActivity) weakReference.get();
Intent intent = new Intent();
intent.setClass(mainActivity, SearchEntryActivity.class);
intent.putExtras(msg.getData());
mainActivity.startActivity(intent);
}
}
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
EditText search_edit = getActivity().findViewById(R.id.search_edit);
ImageButton search_btn = (ImageButton) getActivity().findViewById(R.id.search_btn);
search_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.i("haha", "=======Oncli");
// //点击查找按钮之后,取出输入的句子,传给后台
//构造请求搜索的参数
String inputContentArgs = publicStringUtil.questionArgsname+search_edit.getText().toString();
new Thread(new Runnable() {
@Override
public void run() {
ReturnData response = cmkgWebServiceGet.executeHttpGet(inputContentArgs,publicStringUtil.questionSearchURL);
//构建消息将消息交给handle处理
Message m = new Message();
Bundle bundle = new Bundle();
bundle.putSerializable("msg", response);
Intent intent = new Intent();
intent.setClass(mainActivity, SearchEntryActivity.class);
intent.putExtras(bundle);
mainActivity.startActivity(intent);
// m.setData(bundle);
// searchHandler.sendMessage(m);
}
}).start();
}
});
}
}

@ -1,379 +0,0 @@
package com.example.SearchCenter;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.Util.ConditionCode;
import com.example.Util.ReturnData;
import com.example.Util.cmkgWebServiceGet;
import com.example.Util.publicStringUtil;
import com.example.cmknowledgegraph.R;
import com.loopeer.cardstack.AllMoveDownAnimatorAdapter;
import com.loopeer.cardstack.CardStackView;
import com.loopeer.cardstack.UpDownAnimatorAdapter;
import com.loopeer.cardstack.UpDownStackAnimatorAdapter;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
public class SearchEntryActivity extends AppCompatActivity implements CardStackView.ItemExpendListener,ConditionCode{
public static ArrayList<String> content=new ArrayList<String>();//存储数据内容
public static String model_Text;
public static int[] index=new int[3];//在随机生成选定联想搜索产生的索引值
Integer[] color = {
R.color.holo_blue_bright,
R.color.holo_orange_light,
R.color.holo_purple,
R.color.holo_red_light,
R.color.holo_blue_dark,
R.color.holo_orange_dark,
R.color.holo_blue_dark,
R.color.holo_red_dark,
R.color.holo_orange_light,
R.color.holo_red_dark
};
private CardStackView mStackView;
private LinearLayout mActionButtonContainer;
private CMKGStackAdapter cmkgStackAdapter;
Integer[] new_color;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_entry);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
Log.i("bundle",bundle.toString());
init(bundle);
}
public void onItemExpend(boolean expend) {
}
void init(Bundle bundle)
{
List<List<ContentData>> lists=new LinkedList<>();
//获取response后将这个json数据解析
ReturnData response = (ReturnData) bundle.getSerializable("msg");
Log.i("response+++++",response+"返回值");
try {
int code = response.getCode();
Log.i("code:",""+code);
String message = response.getMsg();
Log.i("msg:",""+message);
if(code==501){
Toast.makeText(this, "抱歉没有找到呢", Toast.LENGTH_LONG).show();
System.out.println("显示错误啦啊");
}else if(code == DiseaseToSymptom){
/**
* //返回的是病症
* listslist
*/
if(content.size()!=0){
content.clear();
}
List<ContentData> list = new LinkedList<>();
list.add(new ContentData((String)response.getData()));
lists.add(list);
new_color=new Integer[1];
}else if(code==DiseaseToMedicines){
/**
* //返回的是结解决的多种药品方法
*
*/
if(content.size()!=0){
content.clear();
}
Log.i("hah",""+(String)response.getData());
JSONArray jsonArray = new JSONArray((String)response.getData());
for(int i=0;i<jsonArray.length();i++){
List<ContentData> list=new LinkedList<>();
list.add(new ContentData("我是您的用法哦~请您看看我嘞\n我无比的期待您的光临嘞\n我们没有连数据呢马上就有嘞"));
content.add((String) jsonArray.get(i));
lists.add(list);
}
System.out.println("++++"+jsonArray.length());
new_color=new Integer[jsonArray.length()];
}else if(code==MedicineToOperation) {
/**
* //返回的是药的用法
* //标题就是药品的名字,内容是用法
*/
if(content.size()!=0){
content.clear();
}
List<ContentData> list = new LinkedList<>();
list.add(new ContentData((String)response.getData()));
lists.add(list);
new_color=new Integer[1];
}else if(code==MedicineToFunction){
/**
* //返回的是药的主治症状和对应的
*
*/
if(content.size()!=0){
content.clear();
}
List<ContentData> list = new LinkedList<>();
String str=(String)response.getData();
JSONObject jo=new JSONObject(str.toString());
String function=jo.getString("function");
list.add(new ContentData(function));
lists.add(list);
String disease_names=new String(jo.getString("disease"));
JSONArray ja=new JSONArray(disease_names);
List<ContentData> list_1=new LinkedList<>();
for(int i=0;i<ja.length();i++){
list_1.add(new ContentData(ja.get(i).toString()));
content.add(ja.get(i).toString());
}
lists.add(list_1);
new_color=new Integer[2];
}
} catch (JSONException e) {
e.printStackTrace();
}
if(response.getCode()!=501)
for(int i=0;i<new_color.length;i++){
new_color[i]=color[i];
}
CardStackView mCardStack = (CardStackView)findViewById(R.id.cardStackView);
CMKGStackAdapter adapter = new CMKGStackAdapter(this,response);
mCardStack.setAdapter(adapter);
mCardStack.setItemExpendListener(this);
/**
*
* 便items
* -
* -
* -
* -
*
*
*/
mCardStack.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownStackAnimatorAdapter(mCardStack));
/**
*
* nm
* nhmnhmnhm
* nhm nhmnhm
* nhmnhmnhm
*/
TextView asscoiate_text=findViewById(R.id.asscoiate_text);//显示文本“你可能感兴趣”
String[] texts;
if(response.getCode()==DiseaseToSymptom){
/**
* nm
*/
texts=new String[1];
texts[0]=response.getMsg()+"应该吃什么药";
model_Text=Model_Medicines;
}else if(response.getCode()==DiseaseToMedicines){
/**
* nhmnhmnhm
*
*/
Random r=new Random();
if(content.size()>3){
texts=new String[3];
for(int i=0;i<3;i++) {
int a;
while(true){
a=r.nextInt(content.size());
if(getDuplicate(a,index))
break;
}
index[i] =a;
texts[i]=content.get(index[i])+"能治什么病症";
}
}else{
texts=new String[content.size()];
for(int i=0;i<content.size();i++){
index[i]=i;
texts[i]=content.get(i)+"能治什么病症";
}
}
model_Text=Model_Function;
}else if(response.getCode()==MedicineToOperation){
/**
*
* nhm
*/
texts=new String[1];
texts[0]=response.getMsg()+"能治什么病";
model_Text=Model_Function;
}else if(response.getCode()==MedicineToFunction){//返回的是病
/**
*
* nm
*/
Random r=new Random();
if(content.size()>3){
texts=new String[3];
for(int i=0;i<3;i++) {
int a;
while(true){
a=r.nextInt(9);
System.out.println("The last a="+a);
if(getDuplicate(a,index))
break;
}
System.out.println("The waibu a="+a);
index[i] = r.nextInt(content.size());
texts[i]=content.get(index[i])+"吃什么药";
System.out.println("text[i]="+texts[i]);
}
}else{
texts=new String[content.size()];
for(int i=0;i<content.size();i++){
texts[i]=content.get(i)+"吃什么药";
System.out.println("text[i]!!!!="+texts[i]);
}
}
model_Text=Model_Medicines;
}else{//当code=501
int precode = bundle.getInt("code");
if(precode==100||precode==200){
//病
content = (ArrayList<String>) bundle.getSerializable("content");
Random r=new Random();
if(content.size()>3){
texts=new String[3];
for(int i=0;i<3;i++) {
int a;
while(true){
a=r.nextInt(content.size());
if(getDuplicate(a,index))
break;
}
index[i] =a;
texts[i]=content.get(index[i])+"能治什么病症";
}
}else{
texts=new String[content.size()];
for(int i=0;i<content.size();i++){
index[i]=i;
texts[i]=content.get(i)+"能治什么病症";
}
}
model_Text=Model_Function;
}else{
//药
content = (ArrayList<String>) bundle.getSerializable("content");
Random r=new Random();
if(content.size()>3){
texts=new String[3];
for(int i=0;i<3;i++) {
int a;
while(true){
a=r.nextInt(9);
System.out.println("The last a="+a);
if(getDuplicate(a,index))
break;
}
System.out.println("The waibu a="+a);
index[i] = r.nextInt(content.size());
texts[i]=content.get(index[i])+"吃什么药";
System.out.println("text[i]="+texts[i]);
}
}else{
texts=new String[content.size()];
for(int i=0;i<content.size();i++){
texts[i]=content.get(i)+"吃什么药";
System.out.println("text[i]!!!!="+texts[i]);
}
}
model_Text=Model_Medicines;
}
}
ArrayAdapter<String> view_adapter = new ArrayAdapter<String>(SearchEntryActivity.this,R.layout.list_view, texts);
ListView listView=findViewById(R.id.listview_group);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
new Thread(new Runnable() {
@Override
public void run() {
Log.i("this thread is====","runginn");
ReturnData rd = null;
if (response.getCode() == DiseaseToMedicines) {
System.out.println("list "+response.getCode());
rd = cmkgWebServiceGet.executeHttpGet(publicStringUtil.questionArgsname + content.get(index[position]) + model_Text, publicStringUtil.questionSearchURL);
} else if(response.getCode()==MedicineToFunction){
System.out.println("list "+response.getCode());
if(content.size()>3)
rd = cmkgWebServiceGet.executeHttpGet(publicStringUtil.questionArgsname + content.get(index[position]) + model_Text, publicStringUtil.questionSearchURL);
else
rd = cmkgWebServiceGet.executeHttpGet(publicStringUtil.questionArgsname + content.get(position) + model_Text, publicStringUtil.questionSearchURL);
}else {
//100或者300的处理
rd = cmkgWebServiceGet.executeHttpGet(publicStringUtil.questionArgsname + response.getMsg() + model_Text, publicStringUtil.questionSearchURL);
}
Message m = new Message();
Bundle bundle = new Bundle();
bundle.putSerializable("msg", rd);
bundle.putSerializable("content",content);
bundle.putInt("precode",response.getCode());
Intent intent = new Intent();
intent.setClass(SearchEntryActivity.this, SearchEntryActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
}).start();
}
});
listView.setAdapter(view_adapter);
if(response.getCode()!=501)
adapter.updateData(Arrays.asList(new_color),lists);
}
private boolean getDuplicate(int a,int[] index) {
for(int num:index){
if(a==num)
return false;
}
return true;
}
}

@ -1,39 +0,0 @@
package com.example.Util;
public interface ConditionCode {
/**
* DiseaseToSymptom
* DiseaseToMedeicines
* MedicineToOperation
* MedicineToFunction
*/
public final int DiseaseToSymptom=100;
public final int DiseaseToMedicines=200;
public final int MedicineToOperation=300;
public final int MedicineToFunction=400;
/***
*Model_Symptom
* Model_Medicines
* Model_Operation
* Model_Function
*/
public final String Model_Symptom="的症状";
public final String Model_Medicines="吃什么药";
public final String Model_Operation="用法";
public final String Model_Function="作用";
//登陆成功
public final int loginsucess = 200;
//手机号不存在
public final int phonenumberisNotExist = 501;
//密码错误
public final int passwordError = 502;
//注册成功
public final int registersucess = 200;
//手机号已注册
public final int phonenumberHadExist = 501;
}

@ -1,88 +0,0 @@
package com.example.Util.RequestBody;
import org.json.JSONException;
import org.json.JSONObject;
public class user {
protected user(){}
private String phonenumber;
private String username;
private String password;
private Integer age;
private Integer sex;
private String region;
public user(String phonenumber, String username, String password, Integer age, Integer sex, String region) {
this.phonenumber = phonenumber;
this.username = username;
this.password = password;
this.age = age;
this.sex = sex;
this.region = region;
}
public String getPhonenumber() {
return phonenumber;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public Integer getAge() {
return age;
}
public Integer getSex() {
return sex;
}
@Override
public String toString() {
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("phonenumber",phonenumber);
jsonObject.put("username",username);
jsonObject.put("password",password);
jsonObject.put("sex",sex);
jsonObject.put("age",age);
jsonObject.put("region",region);
} catch (JSONException e) {
e.printStackTrace();
}
return jsonObject.toString();
}
public String getRegion() {
return region;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setAge(Integer age) {
this.age = age;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public void setRegion(String region) {
this.region = region;
}
}

@ -1,41 +0,0 @@
package com.example.Util;
import org.json.JSONArray;
import java.io.Serializable;
public class ReturnData implements Serializable {
private Integer code;
private String msg;
private Object data;
public ReturnData(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
public Object getData() {
return data;
}
public void setCode(Integer code) {
this.code = code;
}
public void setMsg(String msg) {
this.msg = msg;
}
public void setData(Object data) {
this.data = data;
}
}

@ -1,41 +0,0 @@
package com.example.Util;
import android.content.Context;
import android.graphics.Color;
import com.example.cmknowledgegraph.R;
import com.github.johnpersano.supertoasts.library.Style;
import com.github.johnpersano.supertoasts.library.SuperActivityToast;
import com.github.johnpersano.supertoasts.library.utils.PaletteUtils;
/*
*
*
* */
public class ToolTip {
public static void FadeCenter(Context context,String info){
SuperActivityToast.create(context, new Style(), Style.TYPE_STANDARD)
.setButtonText("UNDO")
.setButtonIconResource(R.drawable.back)
.setProgressBarColor(Color.WHITE)
.setText(info)
.setDuration(Style.DURATION_LONG)
.setFrame(Style.FRAME_KITKAT)
.setColor(PaletteUtils.getSolidColor(PaletteUtils.MATERIAL_RED))
.setAnimations(Style.ANIMATIONS_SCALE).show();
}
public static void FlyTocenter(Context context, String info){
SuperActivityToast.create(context, new Style(), Style.TYPE_STANDARD)
.setButtonText("UNDO")
.setButtonIconResource(R.drawable.back)
.setProgressBarColor(Color.WHITE)
.setText(info)
.setDuration(Style.DURATION_MEDIUM)
.setFrame(Style.FRAME_KITKAT)
.setColor(PaletteUtils.getSolidColor(PaletteUtils.MATERIAL_BROWN))
.setAnimations(Style.ANIMATIONS_FLY).show();
}
}

@ -1,116 +0,0 @@
package com.example.Util;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/*
* tomcat
* @han
* @ongbo
* */
public class cmkgWebServiceGet {
public static ReturnData executeHttpGet(String args,String address){
HttpURLConnection connection = null;
InputStream in = null;
String path = publicStringUtil.cmkgTomcatURL+address+args;
Log.i("path-=",path);
URL url = null;
try {
url = new URL(path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
//打开连接
connection = (HttpURLConnection)url.openConnection();
//设置请求方式
connection.setRequestMethod("GET");//
//建立连接超时
connection.setConnectTimeout(100000);
//传输数据超时
connection.setReadTimeout(80000);
//获取返回结果json数据
in = connection.getInputStream();
return parseInfo(in);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(connection != null){
connection.disconnect();
}
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
//将字节流转换成String
public static ReturnData parseInfo(InputStream inputStream){
BufferedReader reader = null;
String line = "";
StringBuilder response = new StringBuilder();
try {
reader = new BufferedReader(new InputStreamReader(inputStream));
while((line = reader.readLine()) != null) {
response.append(line);
}
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(response.toString());
} catch (JSONException e) {
e.printStackTrace();
}
int code = 0;
try {
code = jsonObject.getInt("code");
} catch (JSONException e) {
e.printStackTrace();
}
Log.i("code:",""+code);
String message = null;
try {
message = jsonObject.getString("msg");
} catch (JSONException e) {
e.printStackTrace();
}
Object data = null;
try {
data = jsonObject.getString("data");
} catch (JSONException e) {
e.printStackTrace();
}
Log.i("data:",""+data);
ReturnData returnData = new ReturnData(code,message,data);
return returnData;
} catch (IOException e) {
e.printStackTrace();
}finally {
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}

@ -1,114 +0,0 @@
package com.example.Util;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
public class cmkgWebServicePost {
public static ReturnData execuHttpPost(String args,String address){
HttpURLConnection connection = null;
InputStream in = null;
String path = publicStringUtil.cmkgTomcatURL+address;
URL url = null;
try {
url = new URL(path);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setReadTimeout(8000);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type","application/json");
connection.connect();
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
// String data = URLEncoder.encode(args, "UTF-8");
Log.i("data",""+args);
// "username="+ URLEncoder.encode(username,"UTF-8")+"&phonenumber="+URLEncoder.encode(phonenumber,"UTF-8")+"&password="+URLEncoder.encode(password,"UTF-8");
out.writeBytes(args);
out.flush();
out.close();
// int resultCode = connection.getResponseCode();
// Log.i("HTTP",resultCode+"");
// if(HttpURLConnection.HTTP_OK == resultCode){
in = connection.getInputStream();
return parseInfo(in);
// }
// return null;
} catch (IOException e) {
e.printStackTrace();
}finally {
if(connection != null){
connection.disconnect();
}
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
public static ReturnData parseInfo(InputStream inputStream){
BufferedReader reader = null;
String line = "";
StringBuilder response = new StringBuilder();
reader = new BufferedReader(new InputStreamReader(inputStream));
try {
while((line = reader.readLine())!=null){
Log.d("RegisterActivity",line);
response.append(line);
}
Log.d("RegisterActivity","response.toSring:"+response.toString());
JSONObject jsonObject = null;
ReturnData returnData = null;
try {
jsonObject = new JSONObject(response.toString());
int code = jsonObject.getInt("code");
String msg = jsonObject.getString("msg");
String data = jsonObject.getString("data");
returnData = new ReturnData(code,msg,data);
} catch (JSONException e) {
e.printStackTrace();
}
return returnData;
} catch (IOException e) {
e.printStackTrace();
}finally {
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}

@ -1,28 +0,0 @@
package com.example.Util;
public class publicStringUtil {
//cmkg项目tomcat服务器请求根路径
public static final String cmkgTomcatURL = "http://114.116.199.154:5000/cmkg";
// public static final String cmkgTomcatURL = "10.0.2.2:8080";
//apache文件存储路径图片什么的都在这里存
public static final String getCmkgApacheURL = "http://114.116.199.154:5001/";
//
public static final String questionSearchURL = "/rest/cmkg/question/hello?";
public static final String questionArgsname = "name=";
public static final String loginURL = "/request/login?";
public static final String registerURL = "/request/register";
/*
*
* Message
*
*
* */
}

@ -0,0 +1,308 @@
package com.example.cmknowledgegraph;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.HandlerHandle;
import com.example.PersonalCenter.JellyInterpolator;
import com.example.PersonalCenter.Login;
import com.example.tools.retuData;
import java.io.IOException;
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private TextView mBtnLogin;
private View progress;
private View mInputLayout;
private float mWidth, mHeight;
private LinearLayout mName, mPsw;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_login);
initView();
}
public void initView(){
mBtnLogin = (TextView) findViewById(R.id.main_btn_login);
progress = findViewById(R.id.layout_progress);
mInputLayout = findViewById(R.id.input_layout);
mName = (LinearLayout) findViewById(R.id.id_edit);
mPsw = (LinearLayout) findViewById(R.id.password_edit);
//给登录设置监听
//设置监听
mBtnLogin.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//异步处理消息请求
final HandlerHandle handler = new HandlerHandle(this);
int viewID = v.getId();
switch (viewID){
case R.id.main_btn_login:
//登录
//根据监听的不同内容,来改变响应状态
// 计算出控件的高与宽
mWidth = mBtnLogin.getMeasuredWidth();
mHeight = mBtnLogin.getMeasuredHeight();
// 隐藏输入框
mName.setVisibility(View.INVISIBLE);
mPsw.setVisibility(View.INVISIBLE);
//调入动画
inputAnimator(mInputLayout, mWidth, mHeight);
//如果登录成功
//获取手机号和密码
EditText phonenumberEditText = (EditText) mName.getChildAt(1);
EditText passwordEditText = (EditText) mName.getChildAt(1);
if(phonenumberEditText==null||phonenumberEditText.getText().toString().equals("")){
//请输入用户名
Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
}else if(passwordEditText==null||passwordEditText.getText().toString().equals("")){
//请输入密码
Toast.makeText(this, "请输入用户名", Toast.LENGTH_SHORT).show();
}else{
String phonenumber = phonenumberEditText.getText().toString();
String password = phonenumberEditText.getText().toString();
Login login = new Login(phonenumber, password);
new Thread(new Runnable() {
@Override
public void run() {
try {
String retuData = login.connUser();
Log.i("returndat--","-----"+retuData);
Message m = new Message();
Bundle b = new Bundle();
b.putString("msg",retuData);
m.setData(b);
handler.sendMessage(m);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
break;
case R.id.main_title:
//注册
}
}
//设置输入框动画效果
private void inputAnimator(final View view, float w, float h){
AnimatorSet set = new AnimatorSet();
ValueAnimator animator = ValueAnimator.ofFloat(0, w);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (Float) animation.getAnimatedValue();
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view
.getLayoutParams();
params.leftMargin = (int) value;
params.rightMargin = (int) value;
view.setLayoutParams(params);
}
});
ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout,
"scaleX", 1f, 0.5f);
set.setDuration(1000);
set.setInterpolator(new AccelerateDecelerateInterpolator());
set.playTogether(animator, animator2);
set.start();
set.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
/**
*
*/
progress.setVisibility(View.VISIBLE);
progressAnimator(progress);
mInputLayout.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationCancel(Animator animation) {
}
});
}
private void progressAnimator(final View view) {
PropertyValuesHolder animator = PropertyValuesHolder.ofFloat("scaleX",
0.5f, 1f);
PropertyValuesHolder animator2 = PropertyValuesHolder.ofFloat("scaleY",
0.5f, 1f);
ObjectAnimator animator3 = ObjectAnimator.ofPropertyValuesHolder(view,
animator, animator2);
animator3.setDuration(1000);
animator3.setInterpolator(new JellyInterpolator());
animator3.start();
}
//登录错误,恢复初始状态
private void recovery() {
progress.setVisibility(View.GONE);
mInputLayout.setVisibility(View.VISIBLE);
mName.setVisibility(View.VISIBLE);
mPsw.setVisibility(View.VISIBLE);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mInputLayout.getLayoutParams();
params.leftMargin = 0;
params.rightMargin = 0;
mInputLayout.setLayoutParams(params);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(mInputLayout, "scaleX", 0.5f,1f );
animator2.setDuration(500);
animator2.setInterpolator(new AccelerateDecelerateInterpolator());
animator2.start();
}
// public static String username;
// public static int usersuccess = 0;
// public static boolean isLogin=false;//登录属性true登陆成功false未登录
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_login);
//
// final EditText tel_edit=findViewById(R.id.id_edit);
// final EditText password_edit=findViewById(R.id.password_edit);
//
// /**
// * 登录按钮,传递参数:手机号(int)、密码(string)
// */
//
// LayoutInflater inflater = getLayoutInflater();
// View layout = inflater.inflate(R.layout.activity_personality_center, null);
// final Button welcom_btn= layout.findViewById(R.id.welcom_btn);
//
// final Button login_btn=findViewById(R.id.login_btn);
// login_btn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if(tel_edit==null||tel_edit.getText().toString().equals("")){
// AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
// builder.setTitle("登录失败");// 设置标题
// builder.setMessage("请输入电话号码");// 为对话框设置内容
// builder.create().show();// 使用show()方法显示对话框
// }else if(password_edit==null||password_edit.getText().toString().equals("")){
// AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
// builder.setTitle("登录失败");// 设置标题
// builder.setMessage("请输入密码");// 为对话框设置内容
// builder.create().show();// 使用show()方法显示对话框
// }else {
// //获取手机号和密码
// String tel = tel_edit.getText().toString().trim();
// String password = password_edit.getText().toString();
// //调用数据库类中的方法进行登录
//// boolean isLogin= OperaSchema.longin(tel,password);//原来的数据库
// final Login login = new Login(tel, password);
//
// new Thread(new Runnable() {
// @Override
// public void run() {
// LoginActivity.username = login.connUser();
// LoginActivity.usersuccess = 1;
// Log.i("登录", "登录有没有问题" + username + "oooo");
//
// }
// }).start();
///**
// * 登陆成功,返回上一个界面,即个人中心界面,刷新个人中心界面
// * 即,改变登录按钮为欢迎按钮
// */
// while (LoginActivity.usersuccess == 0) {
// Log.i("suersuer======", "dkie" + LoginActivity.usersuccess);
// }
//
// if (!LoginActivity.username.equals("")) {
// //改变个人中心的登录状态,
// isLogin=true;
// finish();//返回个人中心Activity
// //刷新个人中心Activity
// Log.i("成功", "成功了");
//
// } else {//登陆失败提醒
// AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
// builder.setTitle("登陆提醒");// 设置标题
// builder.setMessage("登陆失败");// 为对话框设置内容
// builder.create().show();// 使用show()方法显示对话框
// Log.i("失败", "失败了");
// }
// LoginActivity.username = "";
// LoginActivity.usersuccess = 0;
// }
//
// }
// });
//
// //TextView注册跳转
// TextView register_text=findViewById(R.id.register_text);
// register_text.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// //跳转到注册页面
// Intent intent=new Intent();
// intent.setClass(LoginActivity.this,RegisterActivity.class);
// startActivity(intent);
// }
// });
// }
}

@ -1,25 +1,49 @@
package com.example.cmknowledgegraph;
import android.graphics.Color;
import android.os.Bundle;
import com.example.PersonalCenter.MyPersonCenter;
import com.example.ChatContentPkg.ChatContent;
import com.example.HomeContent.SlideFragment;
import com.example.PersonalCenter.PersonContent;
//import com.example.cmknowledgegraph.MainContent;
import com.example.SearchCenter.SearchContent;
import com.example.search.SearchContent;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity {
private TextView mTextMessage;
private FragmentTransaction transaction;
private FragmentManager fragmentManager;
public AppCompatActivity appCompatActivity;
// private static ContextCompat contextCompat;
BottomNavigationView navView;
public AppCompatActivity getAppCompatActivity(){
return this;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity){
this.appCompatActivity = appCompatActivity;
}
//
// public static ContextCompat getComtextCompat() {
// return contextCompat;
// }
// private void setContextCompat(ContextCompat contextCompat){
// this.contextCompat=contextCompat;
// }
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@ -27,24 +51,42 @@ public class MainActivity extends AppCompatActivity {
public boolean onNavigationItemSelected(MenuItem item) {
fragmentManager = getSupportFragmentManager(); //使用fragmentmanager和transaction来实现切换效果
transaction = fragmentManager.beginTransaction();
transaction = fragmentManager.beginTransaction();//开启事务
/*
* replaceview
* commit
* */
switch (item.getItemId()) {
case R.id.home:
transaction.replace(R.id.content,new MainContent()); //对应的java class
transaction.commit(); //一定不要忘记commit否则不会显示
SlideFragment slideFragment = new SlideFragment();
slideFragment.setAppCompatActivity(getAppCompatActivity());
transaction.replace(R.id.content,slideFragment); //对应的java class
transaction.commit(); //提交事务
return true;
case R.id.search:
transaction.replace(R.id.content,new SearchContent()); //对应的java class
transaction.commit(); //一定不要忘记commit否则不会显示
SearchContent searchContent = new SearchContent();
searchContent.setAppCompatActivity(getAppCompatActivity());
transaction.replace(R.id.content, searchContent); //对应的java class
transaction.commit(); //提交事务
return true;
case R.id.chat:
// transaction.replace(R.id.content,new MyPersonCenter());
// transaction.commit();
ChatContent chatContent = new ChatContent();
chatContent.setAppCompatActivity(getAppCompatActivity());
transaction.replace(R.id.content,chatContent);
transaction.commit();//提交事务
return true;
case R.id.person:
transaction.replace(R.id.content,new MyPersonCenter()); //对应的java class
transaction.commit(); //一定不要忘记commit否则不会显示
PersonContent personContent = new PersonContent();
personContent.setAppCompatActivity(getAppCompatActivity());
transaction.replace(R.id.content, personContent); //对应的java class
transaction.commit(); //提交事务
return true;
}
return false;
@ -54,9 +96,11 @@ public class MainActivity extends AppCompatActivity {
// 设置默认进来是tab 显示的页面
private void setDefaultFragment(){
fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.content,new MainContent());
transaction.commit();
transaction = fragmentManager.beginTransaction();//开始事务
SlideFragment slideFragment = new SlideFragment();
slideFragment.setAppCompatActivity(getAppCompatActivity());
transaction.replace(R.id.content,slideFragment);
transaction.commit();//提交事务
}
@Override
@ -64,10 +108,11 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setDefaultFragment(); //上面写的那个函数
BottomNavigationView navView = findViewById(R.id.nav_view);
navView = findViewById(R.id.nav_view);
mTextMessage = findViewById(R.id.message);
navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
// setAppCompatActivity(this);
// setContextCompat(contextCompat);
}

@ -1,19 +0,0 @@
package com.example.cmknowledgegraph;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class MainContent extends Fragment {
//创建视图
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate( R.layout.activity_home, container, false ); //要加载的layout文件
}
}

@ -0,0 +1,23 @@
package com.example.cmknowledgegraph;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class PersonalityCenterActivity extends AppCompatActivity {
@SuppressLint("LongLogTag")
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i("PersonalityCenterActivity","个人中心");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_personality_center);
}
}

@ -0,0 +1,102 @@
package com.example.cmknowledgegraph;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.Register;
public class RegisterActivity extends AppCompatActivity {
public static int regester = 0;
public static boolean isRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
final EditText tel_edit=findViewById(R.id.tel_register_edit);
final EditText password_edit=findViewById(R.id.password_register_edit);
final EditText nickname_edit=findViewById(R.id.nickname_register_edit);
/**
* int(string)(string)
*/
Button register =findViewById(R.id.register_btn);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(tel_edit==null||tel_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入电话号码");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框
}else if (password_edit==null||password_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入密码");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框
}else if(nickname_edit==null||nickname_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入用户名");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框
}else {
//获取手机号,密码,昵称
String tel = tel_edit.getText().toString().trim();
String password = password_edit.getText().toString();
String NickName = nickname_edit.getText().toString();
//调用数据库类方法进行注册
// boolean isRegister= OperaSchema.register(tel,NickName,password);//原来的数据连接
final Register register = new Register(tel, NickName, password);
new Thread(new Runnable() {
@Override
public void run() {
RegisterActivity.isRegister = register.regist();
Log.i("hahaaha", "注册成功了吗" + isRegister);
RegisterActivity.regester = 1;
}
}).start();
while (RegisterActivity.regester == 0) {
Log.i("rererer======", "dsd" + RegisterActivity.regester);
}
if (RegisterActivity.isRegister) {
//注册成功,对话框提醒
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册提醒");// 设置标题
// builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setMessage("注册成功");// 为对话框设置内容
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
//返回登录页面
finish();
}
});
builder.create().show();// 使用show()方法显示对话框
} else {//注册失败
//注册失败提醒
Log.i("zh==-----==--==", "kidoosloe");
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册提醒");// 设置标题
// builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setMessage("注册失败");// 为对话框设置内容
builder.create().show();
}
RegisterActivity.regester = 0;
RegisterActivity.isRegister = false;
}
}
});
}
}

@ -0,0 +1,33 @@
package com.example.cmknowledgegraph;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.Search;
public class SearchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
// EditText search_edit_frame = findViewById(R.id.search_edit);
// ImageButton search_btn = findViewById(R.id.search_btn);
// String sickname = search_edit_frame.getText().toString();
//
// search_btn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
//// Search search = new Search(sickname);
//// search.search();
// }
// });
}
}

@ -0,0 +1,44 @@
package com.example.cmknowledgegraph;
import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.suggest.Suggester;
import java.util.List;
public class test {
public void init(){
/**
*
* + ++ +
*
*
*
*/
String content = "我的胃不舒服";
List<String> keywordList = HanLP.extractKeyword(content, 5);
System.out.println(keywordList);
//关键词联想
Suggester suggester = new Suggester();
String[] titleArray =
(
"威廉王子发表演说 呼吁保护野生动物\n" +
"《时代》年度人物最终入围名单出炉 普京马云入选\n" +
"“黑格比”横扫菲:菲吸取“海燕”经验及早疏散\n" +
"日本保密法将正式生效 日媒指其损害国民知情权\n" +
"英报告说空气污染带来“公共健康危机”"
).split("\\n");
for (String title : titleArray)
{
suggester.addSentence(title);
}
System.out.println(suggester.suggest("发言", 1)); // 语义
System.out.println(suggester.suggest("危机公共", 1)); // 字符
System.out.println(suggester.suggest("mayun", 1)); // 拼音
}
}

@ -0,0 +1,156 @@
package com.example.search;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatEditText;
import androidx.fragment.app.Fragment;
import com.example.PersonalCenter.Search;
import com.example.cmknowledgegraph.R;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import com.yalantis.jellytoolbar.listener.JellyListener;
import com.yalantis.jellytoolbar.widget.JellyToolbar;
import java.util.List;
import java.util.Set;
//
public class SearchContent extends Fragment {
private static final String TEXT_KEY = "text";
AppCompatActivity appCompatActivity;
public AppCompatActivity getAppCompatActivity() {
return appCompatActivity;
}
public void setAppCompatActivity(AppCompatActivity appCompatActivity) {
this.appCompatActivity = appCompatActivity;
}
private JellyToolbar toolbar;
private AppCompatEditText editText;
private JellyListener jellyListener = new JellyListener() {
@Override
public void onCancelIconClicked() {
if (TextUtils.isEmpty(editText.getText())) {
toolbar.collapse();
} else {
editText.getText().clear();
}
}
};
public static List<Set<String>> a;
public static int k=0;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate( R.layout.activity_search, container, false ); //要加载的layout文件
}
private int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
outState.putString(TEXT_KEY, editText.getText().toString());
super.onSaveInstanceState(outState);
}
//
// @Override
// public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
// super.onViewStateRestored(savedInstanceState);
//
// editText.setText(savedInstanceState.getString(TEXT_KEY));
// editText.setSelection(editText.getText().length());
// }
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
toolbar = (JellyToolbar) appCompatActivity.findViewById(R.id.toolbar);
toolbar.getToolbar().setNavigationIcon(R.drawable.ic_menu);
toolbar.setJellyListener(jellyListener);
toolbar.getToolbar().setPadding(0, getStatusBarHeight(), 0, 0);
editText = (AppCompatEditText) LayoutInflater.from(appCompatActivity).inflate(R.layout.edit_text, null);
editText.setBackgroundResource(R.color.colorTransparent);
toolbar.setContentView(editText);//添加入输入框
appCompatActivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
toolbar.setJellyListener(jellyListener);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if((event != null && KeyEvent.KEYCODE_ENTER == event.getKeyCode() && KeyEvent.ACTION_DOWN == event.getAction())){
Log.i("dianjile","你点击了哥哥");
toolbar.collapse();
editText.getText().clear();
return true;
}
return false;
}
});
// TODO Auto-generated method stub
// super.onActivityCreated(savedInstanceState);
// EditText search_edit = getActivity().findViewById(R.id.search_edit);
//
// ImageButton search_btn = (ImageButton) getActivity().findViewById(R.id.search_btn);
//
// search_btn.setOnClickListener(new View.OnClickListener() {
// public void onClick(View v) {
// Log.i("haha","=======Oncli");
// //查找逻辑
// List<Term> termList = StandardTokenizer.segment("什么是糖尿病");
// System.out.println(termList);
// String sickname = search_edit.getText().toString();
// Search search = new Search(sickname);
// new Thread(new Runnable() {
// @Override
// public void run() {
// SearchContent.a = search.search();
// SearchContent.k = 1;
//
// }
// }).start();
// while(SearchContent.k==0) {Log.i("i","i");}
// if(SearchContent.a!=null){
// String[] medicines = a.get(0).toArray(new String[0]);
// String[] reasons = a.get(1).toArray(new String[0]);
// ListView lv = getActivity().findViewById(R.id.listView1);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,medicines);
// lv.setAdapter(adapter);
//
// }
// SearchContent.k=0;
// SearchContent.a=null;
//
//
// }
// });
}
}

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph;
package com.example.tools;
import com.hankcs.hanlp.HanLP;

@ -0,0 +1,14 @@
package com.example.tools;
public class retuData {
public String msg;//接受消息码
public Object data;//接受数据
public void setMsg(String msg) {
this.msg = msg;
}
public void setData(Object data) {
this.data = data;
}
}

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="800"
android:fromDegrees="0.0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:repeatCount="infinite"
android:toDegrees="-360.0" />
<!-- // 设置动画持续时间-->
<!-- // 设置动画开始时的角度-->
<!-- // 设置动画相对于控件的x坐标的位置-->
<!-- 设置动画相对于控件的y坐标的位置-->
<!-- 设置无线循环-->

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="800"
android:fromDegrees="0.0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:repeatCount="infinite"
android:toDegrees="360.0" />
<!-- // 设置动画持续时间-->
<!-- // 设置动画开始时的角度-->
<!-- // 设置动画相对于控件的x坐标的位置-->
<!-- 设置动画相对于控件的y坐标的位置-->
<!-- 设置无线循环-->

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="80%p"
android:toYDelta="0" />
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="150"
android:interpolator="@android:anim/linear_interpolator">
<translate
android:fromYDelta="0"
android:toYDelta="-80%p" />
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="rectangle">
<corners android:radius="4dp"/>
<solid android:color="#4b405c"/>
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 935 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save