ziyonghong 5 years ago
commit 738fadda58

@ -3,6 +3,9 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<compositeConfiguration>
<compositeBuild compositeDefinitionSource="SCRIPT" />
</compositeConfiguration>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">

@ -4,7 +4,7 @@
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":app" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.5.2" />
<option name="LAST_KNOWN_AGP_VERSION" value="3.5.2" />
</configuration>
</facet>
@ -20,7 +20,7 @@
<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="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
@ -104,12 +104,21 @@
<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.\AndroidStudio\cmknowledgegraph\app\libs\mysql-connector-java-8.0.15.jar:unspecified@jar" 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: __local_aars__:D.\我的大学\中医\userlib\mysql-connector-java-8.0.15.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" />
<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.android.material:material:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.appcompat:appcompat:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: androidx.fragment:fragment:1.0.0@aar" level="project" />

@ -32,14 +32,9 @@ 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 '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'
// androidTestImplementation 'androidx.test.ext:junit:1.1.1'
// androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation files('net.sf.json.JSONObject')
implementation fileTree(dir: 'D:\\我的大学\\中医\\userlib', include: ['*.aar', '*.jar'], exclude: [])
implementation 'com.alibaba:fastjson:1.2.62'
implementation 'com.alibaba:fastjson:1.2.62'
}

@ -14,9 +14,10 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SearchEntryActivity"></activity>
<activity android:name=".SearchContentActivity"></activity>
<activity android:name=".SearchEntryActivity" />
<activity android:name=".PersonalityCenterActivity" />
<activity android:name=".LoginActivity"></activity>
<activity android:name=".LoginActivity" />
<activity android:name=".RegisterActivity" />
<activity android:name=".MainActivity">
<intent-filter>

@ -26,8 +26,8 @@ public class Search {
Set<String> reasonsSet = new HashSet<String>();
for(String i: keywordList){
Log.i("关键词提取",i+"ha");
String resq = SearchServiceGet.executeSearchGet(i,"/Search");
// String resq = SearchServiceGet.executeSearchGet(i,"/Search");
String resq="dd";
if(!resq.equals("fail")) {
String[] me_rea = resq.split("-");
String[] medicines = me_rea[0].split("\\|");

@ -2,6 +2,10 @@ package com.example.PersonalCenter;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import net.sf.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@ -10,14 +14,24 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Map;
public class SearchServiceGet {
public static String executeSearchGet(String sickname,String address){
public static ArrayList<String> label;//存储标签内容
public static ArrayList<String> content;//存储数据内容
public static Map mapType;
public static boolean SearchSuccess=false;
public static String executeSearchGet(String name){
HttpURLConnection connection = null;
InputStream in = null;
String Url = "http://106.54.210.208:8080/ChineseM"+address;
String path = Url + "?sickname="+sickname;
String address="/rest/cmkg/question";
String Url = "http://localhost:8080"+address;
String path = Url + "?name="+name;
URL url = null;
try {
url = new URL(path);
@ -37,9 +51,28 @@ public class SearchServiceGet {
}
//这时候response就是一个连续字符串了吧
Log.i("response+++++",response+"返回值");
return response.toString();
//
System.out.println(response.toString());
//开始解析返回的数据
JSONObject jo=JSONObject.fromObject(response.toString());
String message=jo.getString("message");
int code=jo.getInt("code");
if((message.equals("病症查询成功")||message.equals("药品查询成功"))&&code==200){
//查询成功,在开始解析数据
//把data里的数据转换为Map遍历map打印键值对
String data=jo.get("data").toString();
mapType = JSON.parseObject(data,Map.class);
for (Object obj : mapType.keySet()) {
//把键值对放入队列中,前提是标签的内容不为空
if(mapType.get(obj)!=null) {
label.add(obj.toString());
content.add(mapType.get(obj).toString());
System.out.println("key为" + obj + "值为:" + mapType.get(obj));
}
}
SearchSuccess=true;//查找成功标志
}
return response.toString();
} catch (IOException e) {
e.printStackTrace();
}finally {
@ -60,4 +93,5 @@ public class SearchServiceGet {
}
return "";
}
}

@ -1,20 +1,17 @@
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.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import androidx.fragment.app.Fragment;
import com.example.PersonalCenter.Search;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import com.example.PersonalCenter.SearchServiceGet;
import java.util.List;
import java.util.Set;
@ -33,39 +30,20 @@ public static int k=0;
// 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;
//点击查找按钮之后,去除输入的句子,传给后台
String inputContent = search_edit.getText().toString();
SearchServiceGet.executeSearchGet(inputContent);
//执行到这里已经把data里的数据取出来了或没有但是都要跳转页面到SearchEntryActivity页面
Intent intent = new Intent();
intent.setClass(getActivity(), SearchEntryActivity.class);
startActivity(intent);
}
});
}
}

@ -0,0 +1,42 @@
package com.example.cmknowledgegraph;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.TypedValue;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.PersonalCenter.SearchServiceGet;
public class SearchContentActivity extends AppCompatActivity {
/**
* SearchEntryActivity
* intent访map
*
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_content);
TextView text_title=findViewById(R.id.search_content);
//设置内容的标题,位置,大小
String label_name=getIntent().getStringExtra("label").toString();
text_title.setPadding(50,80,100,100);
text_title.setText(label_name);
text_title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
text_title.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
//遍历label和content的队列显示内容
for(int i=1;i< SearchServiceGet.label.size();i++){
TextView text_label=findViewById(R.id.search_content);
text_label.setText(SearchServiceGet.label.get(i));
// text_la
}
}
}

@ -1,8 +1,15 @@
package com.example.cmknowledgegraph;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.example.PersonalCenter.SearchServiceGet;
public class SearchEntryActivity extends AppCompatActivity {
@ -10,5 +17,29 @@ public class SearchEntryActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_entry);
//有SearchContent跳转到这里。在这里访问全局变量实例化ListView
Intent intent=new Intent();
intent.setClass(this,SearchContentActivity.class);
ListView lv = findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, SearchServiceGet.label);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
//根据点击不同的item跳转到不同的页面
switch (i){
case 0:
intent.putExtra("label",SearchServiceGet.label.get(1));
startActivity(intent);
break;
case 1:
intent.putExtra("label",SearchServiceGet.label.get(2));
startActivity(intent);
break;
}
}
});
lv.setAdapter(adapter);
}
}

@ -5,7 +5,7 @@ import com.hankcs.hanlp.suggest.Suggester;
import java.util.List;
public class test {
public class abcd {
public void init(){

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SearchContentActivity">
<TextView
android:id="@+id/search_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>

@ -0,0 +1,72 @@
package com.example.cmknowledgegraph;
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 getTest {
public static String executeSearchGet(){
HttpURLConnection connection = null;
InputStream in = null;
String name="头痛";
String address="/rest/cmkg/question/hello";
String Url = "http://10.0.2.2:8080"+address;
String path = Url + "?name="+name;
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+"返回值");
System.out.println(response.toString());
// 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 "";
}
public static void main(String args[]){
executeSearchGet();
}
}
Loading…
Cancel
Save