|
|
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);
|
|
|
|
|
|
//构建消息,将消息交给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();
|
|
|
|
|
|
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|