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: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: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" 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: 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.collection:collection:1.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.lifecycle:lifecycle-common:2.0.0@jar" level="project" />

@ -35,7 +35,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
api 'com.hankcs:hanlp:portable-1.7.2' api 'com.hankcs:hanlp:portable-1.7.2'
implementation 'com.google.android.material:material:1.0.0' 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.alibaba:fastjson:1.2.62'
implementation 'com.loopeer.library:cardstack:1.0.2' implementation 'com.loopeer.library:cardstack:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'

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

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

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

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

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

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

@ -1,4 +1,4 @@
package com.example.cmknowledgegraph; package com.example.SearchCenter;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -7,6 +7,9 @@ import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.example.Util.ConditionCode;
import com.example.cmknowledgegraph.R;
import java.util.List; import java.util.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 { 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.BufferedReader;
import java.io.IOException; import java.io.IOException;

@ -1,4 +1,4 @@
package com.example.PersonalCenter; package com.example.Util;
import android.util.Log; 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.AlertDialog;
import androidx.appcompat.app.AppCompatActivity; 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(); String password = password_edit.getText().toString();
//调用数据库类中的方法进行登录 //调用数据库类中的方法进行登录
// boolean isLogin= OperaSchema.longin(tel,password);//原来的数据库 // boolean isLogin= OperaSchema.longin(tel,password);//原来的数据库
final Login login = new Login(tel, password); // final Login login = new Login(tel, password);
//
new Thread(new Runnable() { // new Thread(new Runnable() {
@Override // @Override
public void run() { // public void run() {
LoginActivity.username = login.connUser(); // LoginActivity.username = login.connUser();
LoginActivity.usersuccess = 1; // LoginActivity.usersuccess = 1;
Log.i("登录", "登录有没有问题" + username + "oooo"); // Log.i("登录", "登录有没有问题" + username + "oooo");
//
} // }
}).start(); // }).start();
// 气虚质怎噩梦治
/** /**
* *
* *
@ -102,9 +103,9 @@ public class LoginActivity extends AppCompatActivity {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
//跳转到注册页面 //跳转到注册页面
Intent intent=new Intent(); // Intent intent=new Intent();
intent.setClass(LoginActivity.this,RegisterActivity.class); // intent.setClass(LoginActivity.this,RegisterActivity.class);
startActivity(intent); // startActivity(intent);
} }
}); });
} }

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

@ -1,102 +1,102 @@
package com.example.cmknowledgegraph; //package com.example.cmknowledgegraph;
//
import android.content.DialogInterface; //import android.content.DialogInterface;
import android.os.Bundle; //import android.os.Bundle;
import android.util.Log; //import android.util.Log;
import android.view.View; //import android.view.View;
import android.widget.Button; //import android.widget.Button;
import android.widget.EditText; //import android.widget.EditText;
//
import androidx.appcompat.app.AlertDialog; //import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity; //import androidx.appcompat.app.AppCompatActivity;
//
import com.example.PersonalCenter.Register; //import com.example.PersonalCenter.Register;
//
//
public class RegisterActivity extends AppCompatActivity { //public class RegisterActivity extends AppCompatActivity {
public static int regester = 0; // public static int regester = 0;
public static boolean isRegister; // public static boolean isRegister;
@Override // @Override
protected void onCreate(Bundle savedInstanceState) { // protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register); // setContentView(R.layout.activity_register);
//
final EditText tel_edit=findViewById(R.id.tel_register_edit); // final EditText tel_edit=findViewById(R.id.tel_register_edit);
final EditText password_edit=findViewById(R.id.password_register_edit); // final EditText password_edit=findViewById(R.id.password_register_edit);
final EditText nickname_edit=findViewById(R.id.nickname_register_edit); // final EditText nickname_edit=findViewById(R.id.nickname_register_edit);
//
/** // /**
* int(string)(string) // * 注册按钮传递参数手机号int密码(string),昵称(string)
*/ // */
Button register =findViewById(R.id.register_btn); // Button register =findViewById(R.id.register_btn);
register.setOnClickListener(new View.OnClickListener() { // register.setOnClickListener(new View.OnClickListener() {
@Override // @Override
public void onClick(View view) { // public void onClick(View view) {
if(tel_edit==null||tel_edit.getText().toString().equals("")){ // if(tel_edit==null||tel_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); // AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题 // builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入电话号码");// 为对话框设置内容 // builder.setMessage("请输入电话号码");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框 // builder.create().show();// 使用show()方法显示对话框
}else if (password_edit==null||password_edit.getText().toString().equals("")){ // }else if (password_edit==null||password_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); // AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题 // builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入密码");// 为对话框设置内容 // builder.setMessage("请输入密码");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框 // builder.create().show();// 使用show()方法显示对话框
}else if(nickname_edit==null||nickname_edit.getText().toString().equals("")){ // }else if(nickname_edit==null||nickname_edit.getText().toString().equals("")){
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); // AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册失败");// 设置标题 // builder.setTitle("注册失败");// 设置标题
builder.setMessage("请输入用户名");// 为对话框设置内容 // builder.setMessage("请输入用户名");// 为对话框设置内容
builder.create().show();// 使用show()方法显示对话框 // builder.create().show();// 使用show()方法显示对话框
}else { // }else {
//获取手机号,密码,昵称 // //获取手机号,密码,昵称
String tel = tel_edit.getText().toString().trim(); // String tel = tel_edit.getText().toString().trim();
String password = password_edit.getText().toString(); // String password = password_edit.getText().toString();
String NickName = nickname_edit.getText().toString(); // String NickName = nickname_edit.getText().toString();
//调用数据库类方法进行注册 // //调用数据库类方法进行注册
// boolean isRegister= OperaSchema.register(tel,NickName,password);//原来的数据连接 //// boolean isRegister= OperaSchema.register(tel,NickName,password);//原来的数据连接
final Register register = new Register(tel, NickName, password); // final Register register = new Register(tel, NickName, password);
//
new Thread(new Runnable() { // new Thread(new Runnable() {
@Override // @Override
public void run() { // public void run() {
RegisterActivity.isRegister = register.regist(); // RegisterActivity.isRegister = register.regist();
Log.i("hahaaha", "注册成功了吗" + isRegister); // Log.i("hahaaha", "注册成功了吗" + isRegister);
RegisterActivity.regester = 1; // RegisterActivity.regester = 1;
} // }
}).start(); // }).start();
while (RegisterActivity.regester == 0) { // while (RegisterActivity.regester == 0) {
Log.i("rererer======", "dsd" + RegisterActivity.regester); // Log.i("rererer======", "dsd" + RegisterActivity.regester);
} // }
if (RegisterActivity.isRegister) { // if (RegisterActivity.isRegister) {
//注册成功,对话框提醒 // //注册成功,对话框提醒
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); // AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册提醒");// 设置标题 // builder.setTitle("注册提醒");// 设置标题
// builder.setIcon(R.drawable.ic_launcher);//设置图标 // // builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setMessage("注册成功");// 为对话框设置内容 // builder.setMessage("注册成功");// 为对话框设置内容
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { // builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
//
@Override // @Override
public void onClick(DialogInterface arg0, int arg1) { // public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub // // TODO Auto-generated method stub
//返回登录页面 // //返回登录页面
finish(); // finish();
} // }
}); // });
builder.create().show();// 使用show()方法显示对话框 // builder.create().show();// 使用show()方法显示对话框
} else {//注册失败 // } else {//注册失败
//注册失败提醒 // //注册失败提醒
Log.i("zh==-----==--==", "kidoosloe"); // Log.i("zh==-----==--==", "kidoosloe");
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); // AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
builder.setTitle("注册提醒");// 设置标题 // builder.setTitle("注册提醒");// 设置标题
// builder.setIcon(R.drawable.ic_launcher);//设置图标 // // builder.setIcon(R.drawable.ic_launcher);//设置图标
builder.setMessage("注册失败");// 为对话框设置内容 // builder.setMessage("注册失败");// 为对话框设置内容
builder.create().show(); // builder.create().show();
} // }
RegisterActivity.regester = 0; // RegisterActivity.regester = 0;
RegisterActivity.isRegister = false; // 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 <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="250dp"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp" android:padding="16dp"
> >
<!-- <!--
这个布局是Header 这个布局是Header
\--> \-->
<!-- android:layout_height="wrap_content"-->
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -35,6 +37,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="#ffffff"
android:id="@+id/scores_list" android:id="@+id/scores_list"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"

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

Loading…
Cancel
Save