master
ongbo 5 years ago
parent 92ea9462b0
commit 43121285a1

@ -103,13 +103,6 @@
<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: __local_aars__:D.\我的大学\中医\userlib\commons-beanutils-1.7.0.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\commons-collections-3.1.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\commons-lang-2.5.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\commons-logging.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\ezmorph-1.0.3.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\gson-2.8.0.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\我的大学\中医\userlib\json-lib-2.1-jdk15.jar:unspecified@jar" 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: androidx.lifecycle:lifecycle-common:2.0.0@jar" level="project" />

@ -35,7 +35,7 @@ dependencies {
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 fileTree(dir: 'D:\\我的大学\\中医\\userlib', include: ['*.aar', '*.jar'], exclude: [])
implementation 'com.alibaba:fastjson:1.2.62'
implementation 'com.loopeer.library:cardstack:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'

@ -18,6 +18,7 @@
<activity android:name=".PersonalityCenterActivity" />
<activity android:name=".LoginActivity" />
<activity android:name=".RegisterActivity" />
<activity android:name="com.example.SearchCenter.SearchEntryActivity"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

@ -1,20 +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;
}
}
}
//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;
// }
// }
//}

@ -1,47 +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");
//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");
String resq="dd";
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;
}
}
// String resq="dd";
// 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;
//
//
// }
//}

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph;
package com.example.SearchCenter;
import android.content.Context;
import android.graphics.PorterDuff;
@ -12,24 +12,32 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.PersonalCenter.SearchServiceGet;
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 org.json.JSONArray;
import org.json.JSONException;
import java.util.List;
public class CMKGStackAdapter extends StackAdapter<Integer> implements ConditionCode{
public class CMKGStackAdapter extends StackAdapter<Integer> implements ConditionCode {
List<List<ContentData>> contentList;
ReturnData returnData;
/**
*
*
*/
static int title_num=0;//标题的数目
public CMKGStackAdapter(Context context)
public CMKGStackAdapter(Context context, ReturnData returnData)
{
super(context);
//mContext = context;
this.returnData = returnData;
}
protected CardStackView.ViewHolder onCreateView(ViewGroup parent, int viewType) {
@ -67,7 +75,7 @@ public class CMKGStackAdapter extends StackAdapter<Integer> implements Condition
if(holder instanceof CardViewHolder)
{
CardViewHolder cardHolder = (CardViewHolder)holder;
cardHolder.onBind(data,position,contentList);
cardHolder.onBind(data,position,contentList,returnData);
}
System.out.println("bindView");
}
@ -94,7 +102,7 @@ public class CMKGStackAdapter extends StackAdapter<Integer> implements Condition
System.out.println("CardViewHolder constructor");
}
public void onBind(Integer backgroundColorId,int position,List<List<ContentData>> dataList)
public void onBind(Integer backgroundColorId,int position,List<List<ContentData>> dataList,ReturnData returnData)
{
/*
bindView ViewHolderbindViewViewHolderonBind使
@ -105,12 +113,14 @@ public class CMKGStackAdapter extends StackAdapter<Integer> implements Condition
* * -
* * -
*/
if(SearchServiceGet.code==DiseaseToSymptom||SearchServiceGet.code==MedicineToOperation||SearchServiceGet.code==MedicineToSymptom){
if(returnData.getCode()==DiseaseToSymptom||returnData.getCode()==MedicineToOperation||returnData.getCode()==MedicineToSymptom){
//对应病症,那么标题只有一个就是病的名字
titleText.setText(SearchServiceGet.name_back);
titleText.setText(returnData.getMsg());
}else {
//对应治疗方法,那么标题就要有多个
titleText.setText(SearchServiceGet.content.get(title_num));
titleText.setText(SearchEntryActivity.content.get(title_num));
title_num++;
}

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph;
package com.example.SearchCenter;
public class ContentData {

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph;
package com.example.SearchCenter;
import android.view.LayoutInflater;
import android.view.View;
@ -7,13 +7,16 @@ 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{
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ScoresViewHodler> implements ConditionCode {
List<ContentData> content_list;
public ListAdapter(List<ContentData> list)

@ -0,0 +1,34 @@
//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();
// }
// });
// }
//}

@ -0,0 +1,116 @@
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);
// SearchServiceGet.exxcuteTest(inputContent);
//构建消息将消息交给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();
// SearchServiceGet.exxcuteTest(inputContent);
// //执行到这里已经把data里的数据取出来了或没有但是都要跳转页面到SearchEntryActivity页面
}
});
}
}

@ -0,0 +1,198 @@
package com.example.SearchCenter;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity;
import com.example.Util.ConditionCode;
import com.example.Util.ReturnData;
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;
public class SearchEntryActivity extends AppCompatActivity implements CardStackView.ItemExpendListener,ConditionCode{
public static ArrayList<String> content=new ArrayList<String>();//存储数据内容
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;
String[] name = {"数据结构","计算机网络","编译原理","C语言","算法设计","FPGA编程"};
String[] scores = {"77","87","65","98","74","80"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_entry);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
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== ConditionCode.DiseaseToMedicines || code == ConditionCode.MedicineToSymptom){
//// //病的治疗方法和药的作用,返回数组
//// JSONArray jsonArray = jsonObject.getJSONArray("data");
//// Log.i("length==",""+jsonArray.length());
//// for(int i=0;i<jsonArray.length();i++) Log.i("dataJsonArray=====",""+jsonArray.get(i));
//// }if(code == ConditionCode.DiseaseToSymptom || code ==ConditionCode.MedicineToOperation){
//// //病的症状或者药的用法,返回字符串
//// String jsonString = jsonObject.getString("data");
//// Log.i("dataString=====",jsonString);
////
//// }
if(code == DiseaseToSymptom){
/**
* //返回的是病症
* listslist
*/
// for(int i=0;i<content.size();i++){
// System.out.println("content="+content.get(i));
// List<ContentData> list=new LinkedList<>();
// list.add(new ContentData(content.get(i)));
// lists.add(list);
// }
List<ContentData> list = new LinkedList<>();
list.add(new ContentData((String)response.getData()));
lists.add(list);
new_color=new Integer[1];
}else if(code==DiseaseToMedicines){
/**
* //返回的是结解决的多种药品方法
*
*/
Log.i("hah",""+(String)response.getData());
JSONArray jsonArray = new JSONArray((String)response.getData());
List<ContentData> list=new LinkedList<>();
for(int i=0;i<jsonArray.length();i++){
list.add(new ContentData("我是您的用法哦~请您看看我嘞\n我无比的期待您的光临嘞\n我们没有连数据呢马上就有嘞"));
lists.add(list);
content.add((String) jsonArray.get(i));
}
new_color=new Integer[jsonArray.length()];
}else if(code==MedicineToOperation) {
/**
* //返回的是药的用法
* //标题就是药品的名字,内容是用法
*/
// for(int i=0;i<content.size();i++){
// List<ContentData> list=new LinkedList<>();
// list.add(new ContentData(content.get(i)));
// lists.add(list);
// }
List<ContentData> list = new LinkedList<>();
list.add(new ContentData((String)response.getData()));
lists.add(list);
new_color=new Integer[1];
}else{
/**
* //返回的是药的主治症状
*
*/
// for(int i = 0; i< content.size(); i++){
// List<ContentData> list=new LinkedList<>();
// list.add(new ContentData(content.get(i)));
// lists.add(list);
// }
List<ContentData> list = new LinkedList<>();
list.add(new ContentData((String)response.getData()));
lists.add(list);
new_color=new Integer[1];
}
for(int i=0;i<new_color.length;i++){
new_color[i]=color[i];
}
} catch (JSONException e) {
e.printStackTrace();
}
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
* -
* -
* -
* -
*
*
*/
adapter.updateData(Arrays.asList(new_color),lists);
// adapter.updateData(Arrays.asList(color),lists);
mCardStack.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownStackAnimatorAdapter(mCardStack));
}
}

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph;
package com.example.Util;
public interface ConditionCode {

@ -0,0 +1,41 @@
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,4 +1,4 @@
package com.example.PersonalCenter;
package com.example.Util;
import java.io.BufferedReader;
import java.io.IOException;

@ -1,4 +1,4 @@
package com.example.PersonalCenter;
package com.example.Util;
import android.util.Log;

@ -0,0 +1,114 @@
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;
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;
}
}

@ -0,0 +1,18 @@
package com.example.Util;
public class publicStringUtil {
//cmkg项目tomcat服务器请求根路径
public static final String cmkgTomcatURL = "http://114.116.199.154:5000/cmkg";
//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?";
}

@ -12,7 +12,7 @@ import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.Login;
//import com.example.PersonalCenter.Login;
@ -56,17 +56,18 @@ public class LoginActivity extends AppCompatActivity {
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();
// 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();
// 气虚质怎噩梦治
/**
*
*
@ -102,9 +103,9 @@ public class LoginActivity extends AppCompatActivity {
@Override
public void onClick(View view) {
//跳转到注册页面
Intent intent=new Intent();
intent.setClass(LoginActivity.this,RegisterActivity.class);
startActivity(intent);
// Intent intent=new Intent();
// intent.setClass(LoginActivity.this,RegisterActivity.class);
// startActivity(intent);
}
});
}

@ -3,21 +3,16 @@ package com.example.cmknowledgegraph;
import android.os.Bundle;
import com.example.cmknowledgegraph.MainContent;
import com.example.cmknowledgegraph.R;
import com.example.cmknowledgegraph.SearchContent;
import com.example.SearchCenter.SearchContent;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.hankcs.hanlp.HanLP;
import androidx.appcompat.app.AppCompatActivity;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.view.MenuItem;
import android.widget.TextView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TextView mTextMessage;
private FragmentTransaction transaction;

@ -1,102 +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;
}
}
});
}
}
//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;
// }
//
// }
// });
// }
//}

@ -1,33 +0,0 @@
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();
}
});
}
}

@ -1,58 +0,0 @@
package com.example.cmknowledgegraph;
import android.content.Intent;
import android.os.Bundle;
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.fragment.app.Fragment;
import com.example.PersonalCenter.SearchServiceGet;
import java.util.List;
import java.util.Set;
//
public class SearchContent extends Fragment {
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文件
}
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 inputContent = search_edit.getText().toString();
new Thread(new Runnable() {
@Override
public void run() {
// SearchServiceGet.executeSearchGet(inputContent);
SearchServiceGet.exxcuteTest(inputContent);
Intent intent = new Intent();
intent.setClass(getActivity(), SearchEntryActivity.class);
startActivity(intent);
}
}).start();
// SearchServiceGet.exxcuteTest(inputContent);
// //执行到这里已经把data里的数据取出来了或没有但是都要跳转页面到SearchEntryActivity页面
}
});
}
}

@ -1,125 +0,0 @@
package com.example.cmknowledgegraph;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.SearchServiceGet;
import com.loopeer.cardstack.AllMoveDownAnimatorAdapter;
import com.loopeer.cardstack.CardStackView;
import com.loopeer.cardstack.UpDownAnimatorAdapter;
import com.loopeer.cardstack.UpDownStackAnimatorAdapter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class SearchEntryActivity extends AppCompatActivity implements CardStackView.ItemExpendListener,ConditionCode{
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_gray_bright,
// R.color.holo_orange_light,
// R.color.holo_red_dark
};
String[] name = {"数据结构","计算机网络","编译原理","C语言","算法设计","FPGA编程"};
String[] scores = {"77","87","65","98","74","80"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_entry);
init();
}
public void onItemExpend(boolean expend) {
}
void init()
{
CardStackView mCardStack = (CardStackView)findViewById(R.id.cardStackView);
CMKGStackAdapter adapter = new CMKGStackAdapter(this);
mCardStack.setAdapter(adapter);
mCardStack.setItemExpendListener(this);
/**
*
* 便items
* -
* -
* -
* -
*
*
*/
List<List<ContentData>> lists=new LinkedList<>();
Integer[] new_color;
if(SearchServiceGet.code==DiseaseToSymptom){
/**
* //返回的是病症
* listslist
*/
System.out.println("size="+SearchServiceGet.content.size());
for(int i=0;i<SearchServiceGet.content.size();i++){
System.out.println("content="+SearchServiceGet.content.get(i));
List<ContentData> list=new LinkedList<>();
list.add(new ContentData(SearchServiceGet.content.get(i)));
lists.add(list);
}
new_color=new Integer[1];
}else if(SearchServiceGet.code==DiseaseToMedicines){
/**
* //返回的是结解决的多种药品方法
*
*/
List<ContentData> list=new LinkedList<>();
for(int i=0;i<SearchServiceGet.content.size();i++){
list.add(new ContentData("我是您的用法哦~请您看看我嘞\n我无比的期待您的光临嘞\n我们没有连数据呢马上就有嘞"));
lists.add(list);
}
new_color=new Integer[SearchServiceGet.content.size()];
}else if(SearchServiceGet.code==MedicineToOperation) {
/**
* //返回的是药的用法
* //标题就是药品的名字,内容是用法
*/
for(int i=0;i<SearchServiceGet.content.size();i++){
List<ContentData> list=new LinkedList<>();
list.add(new ContentData(SearchServiceGet.content.get(i)));
lists.add(list);
}
new_color=new Integer[1];
}else{
/**
* //返回的是药的主治症状
*
*/
for(int i = 0; i< SearchServiceGet.content.size(); i++){
List<ContentData> list=new LinkedList<>();
list.add(new ContentData(SearchServiceGet.content.get(i)));
lists.add(list);
}
new_color=new Integer[1];
}
for(int i=0;i<new_color.length;i++){
new_color[i]=color[i];
}
// adapter.updateData(Arrays.asList(new_color),lists);
adapter.updateData(Arrays.asList(color),lists);
mCardStack.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownAnimatorAdapter(mCardStack));
mCardStack.setAnimatorAdapter(new UpDownStackAnimatorAdapter(mCardStack));
}
}

@ -2,13 +2,15 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="250dp"
android:orientation="vertical"
android:padding="16dp"
>
<!--
这个布局是Header
\-->
<!-- android:layout_height="wrap_content"-->
<FrameLayout
android:layout_width="match_parent"
@ -35,6 +37,7 @@
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:id="@+id/scores_list"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_height="wrap_content"
app:cardElevation="5dp"
app:cardCornerRadius="5dp"
android:layout_margin="5dp"
@ -97,9 +97,11 @@
<!--
所以在这里内容只设置一个TextView
-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/search_content"
style="@style/scores_item_style"
android:paddingLeft="10dp"

Loading…
Cancel
Save