diff --git a/app/src/main/java/com/example/PersonalCenter/Search.java b/app/src/main/java/com/example/PersonalCenter/Search.java new file mode 100644 index 0000000..3ce2e4f --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/Search.java @@ -0,0 +1,46 @@ +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> search(){ + Log.i("search","sick执行了"); + //找出对应的8个关键字 + List keywordList = HanLP.extractKeyword(sickname,8); + + //针对每一个sickname来查找一下能不能够找到相应的名字 + Set mediciesSet = new HashSet(); + Set reasonsSet = new HashSet(); + for(String i: keywordList){ + Log.i("关键词提取",i+"ha"); + String resq = SearchServiceGet.executeSearchGet(i,"/Search"); + + if(!resq.equals("fail")) { + String[] me_rea = resq.split("-"); + String[] medicines = me_rea[0].split("\\|"); + for(String j: medicines) mediciesSet.add(j); + String[] reasons = me_rea[1].split("\\|"); + for(String j: reasons) reasonsSet.add(j); + List> a = new ArrayList>(); + a.add(mediciesSet); + a.add(reasonsSet); + return a; + } + } + + return null; + } +} diff --git a/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java b/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java new file mode 100644 index 0000000..7cac629 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/SearchServiceGet.java @@ -0,0 +1,63 @@ +package com.example.PersonalCenter; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.ProtocolException; +import java.net.URL; + +public class SearchServiceGet { + public static String executeSearchGet(String sickname,String address){ + HttpURLConnection connection = null; + InputStream in = null; + + String Url = "http://106.54.210.208:8080/ChineseM"+address; + String path = Url + "?sickname="+sickname; + URL url = null; + try { + url = new URL(path); + connection = (HttpURLConnection)url.openConnection(); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(100000);//建立连接超时 + connection.setReadTimeout(80000);//传输数据超时 + in = connection.getInputStream(); + + BufferedReader reader = null;//输入流 + String line = "";//读取返回的每一行 + StringBuilder response = new StringBuilder(); + try { + reader = new BufferedReader(new InputStreamReader(in)); + while((line = reader.readLine()) != null) { + response.append(line); + } + //这时候response就是一个连续字符串了吧 + Log.i("response+++++",response+"返回值"); + return response.toString(); + // + + } catch (IOException e) { + e.printStackTrace(); + }finally { + if(reader!=null){ + try { + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (ProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java b/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java index 1490488..e9e3362 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java +++ b/app/src/main/java/com/example/cmknowledgegraph/LoginActivity.java @@ -69,6 +69,7 @@ public class LoginActivity extends AppCompatActivity { } if (!LoginActivity.username.equals("")) { + finish();//返回个人中心Activity //刷新个人中心Activity Log.i("成功", "成功了"); diff --git a/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java b/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java index 97bc3c9..5e4e2f9 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java +++ b/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java @@ -15,12 +15,15 @@ import android.widget.ListView; import androidx.fragment.app.Fragment; import com.example.PersonalCenter.Search; +import com.hankcs.hanlp.HanLP; +import java.util.ArrayList; import java.util.List; +import java.util.Set; public class SearchContent extends Fragment { -public static List a; +public static List> a; public static int k=0; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -31,7 +34,9 @@ public static int k=0; public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); - EditText search_edit = getActivity().findViewById(R.id.search_edit); + //获取搜索内容,然后用HanLP匹配,提取关键词 + EditText search_edit = getActivity().findViewById(R.id.search_edit); + ImageButton search_btn = (ImageButton) getActivity().findViewById(R.id.search_btn); @@ -40,23 +45,35 @@ public static int k=0; Log.i("haha","=======Oncli"); //查找逻辑 String sickname = search_edit.getText().toString(); + Search search = new Search(sickname); new Thread(new Runnable() { @Override public void run() { - SearchContent.a = search.search(); + SearchContent.a = search.search();//查找出来的是一个Set集合的List SearchContent.k = 1; } }).start(); while(SearchContent.k==0) {Log.i("i","i");} if(SearchContent.a!=null){ - String[] medicines = a.get(0); - String[] reasons = a.get(1); + Set medicinesSet = a.get(0);//获取药的集合 + Set reasons = a.get(1); + //要讲medicines改成String集合 +// Object[] medicines = medicinesSet.toArray(); + List medicinesList = new ArrayList(); + for(String medicine: medicinesSet) medicinesList.add(medicine); + String[] medicines = medicinesList.toArray(new String[medicinesList.size()]); ListView lv = getActivity().findViewById(R.id.listView1); ArrayAdapter adapter = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,medicines); lv.setAdapter(adapter); + }else{ + String[] kong = {}; + ListView lv = getActivity().findViewById(R.id.listView1); + ArrayAdapter adapter = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,kong); + lv.setAdapter(adapter); + } SearchContent.k=0; SearchContent.a=null;