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..d5f9fe4 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/Search.java @@ -0,0 +1,47 @@ +package com.example.PersonalCenter; + +import android.util.Log; + +import com.hankcs.hanlp.HanLP; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class Search { + public String sickname; + public Search(String sickname){ + this.sickname = sickname; + } + + public List> 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; + + + } +} 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/SearchActivity.java b/app/src/main/java/com/example/cmknowledgegraph/SearchActivity.java index ebc88a3..f770631 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/SearchActivity.java +++ b/app/src/main/java/com/example/cmknowledgegraph/SearchActivity.java @@ -1,14 +1,33 @@ package com.example.cmknowledgegraph; import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; import androidx.appcompat.app.AppCompatActivity; +import com.example.PersonalCenter.Search; + public class SearchActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search); + EditText search_edit_frame = findViewById(R.id.search_edit); + ImageButton search_btn = findViewById(R.id.search_btn); + String sickname = search_edit_frame.getText().toString(); + + search_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + +// Search search = new Search(sickname); +// search.search(); + } + }); } } diff --git a/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java b/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java index 98b5f1e..5e4e2f9 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java +++ b/app/src/main/java/com/example/cmknowledgegraph/SearchContent.java @@ -2,17 +2,29 @@ package com.example.cmknowledgegraph; import android.content.DialogInterface; 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.Button; +import android.widget.EditText; import android.widget.ImageButton; +import android.widget.ListView; import androidx.fragment.app.Fragment; -public class SearchContent extends 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 int k=0; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment @@ -22,10 +34,51 @@ public class SearchContent extends Fragment { public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); + //获取搜索内容,然后用HanLP匹配,提取关键词 + 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 sickname = search_edit.getText().toString(); + + Search search = new Search(sickname); + new Thread(new Runnable() { + @Override + public void run() { + SearchContent.a = search.search();//查找出来的是一个Set集合的List + SearchContent.k = 1; + + } + }).start(); + while(SearchContent.k==0) {Log.i("i","i");} + if(SearchContent.a!=null){ + 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; + + } }); } diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index 3287d8a..deaeb91 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -12,6 +12,7 @@ android:layout_height="wrap_content" android:layout_marginTop="101dp"> - - + + + + +