You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
4.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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();
}
});
}
}