团队冲刺第十四天

今天完成了新闻的搜索功能:

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

 

posted @ 2021-06-04 17:45  哦心有  阅读(17)  评论(0编辑  收藏  举报