今天完成了新闻的搜索功能:
package com.example.bowenwang; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; public class SearchActivity extends AppCompatActivity implements View.OnClickListener{ EditText editText; Button button; List<Bean> list=new ArrayList<>(); String search; RecyclerAdapter2 recyclerAdapter2; RecyclerView recyclerView; private OkHttpClient okHttpClient=new OkHttpClient.Builder() .connectTimeout(60 * 1000, TimeUnit.MILLISECONDS) .readTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS) .writeTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS) .build(); private Handler handler=new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); list = (List<Bean>) msg.obj; ceshi(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search); recyclerView = (RecyclerView) findViewById(R.id.recyclersearch); editText=findViewById(R.id.search_search_et_input); button=findViewById(R.id.search); button.setOnClickListener(this); } private void get(){ new Thread(){ @Override public void run() { super.run(); String url="http://39.103.196.146:8888/getNewsData/SearchServlet"; try { String result=getData(url); manageResponse(result); Log.e("内容:","搜索"+result); Message msg=Message.obtain(); msg.obj=list; handler.sendMessage(msg); } catch (IOException | JSONException e) { e.printStackTrace(); } } }.start(); } private String getData(String url) throws IOException { RequestBody responseBody=new FormBody.Builder() .add("search", String.valueOf(search)) .build(); Request request=new Request.Builder().post(responseBody).url(url).build(); Response response=okHttpClient.newCall(request).execute(); return response.body().string(); } private void manageResponse(String result) throws JSONException { JSONArray jsonArray=new JSONArray(result); list=new ArrayList<>(); for(int i=0;i<jsonArray.length();i++) { JSONObject jsonObject=jsonArray.getJSONObject(i); String title=jsonObject.getString("title"); String time=jsonObject.getString("time"); String place=jsonObject.getString("place"); String content=jsonObject.getString("content"); String img=jsonObject.getString("img"); Bean bean=new Bean(); bean.setTitle(title); bean.setTime(time); bean.setPlace(place); bean.setContent(content); bean.setImg(img); list.add(bean); } } private void ceshi(){ LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(layoutManager); recyclerAdapter2=new RecyclerAdapter2(list); recyclerView.setAdapter(recyclerAdapter2); } @Override public void onClick(View v) { search=editText.getText().toString(); get(); } }