• 团队冲刺第七天


    今天完成获取云端数据库展示为新闻,

    以一个测试例子来看:

    Mainactivity:

    package com.example.linkmysql;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.os.Parcelable;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    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 okhttp3.MediaType;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
        Button btn;
        TextView textView;
        List<Bean> list=new ArrayList<>();
        Adapter adapter;
        ListView listView;
        LinearLayout click;
        TextView title;
        public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
        private OkHttpClient okHttpClient=new OkHttpClient();
        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_main);
            btn=findViewById(R.id.btn);
            listView=findViewById(R.id.list);
            textView=findViewById(R.id.data);
            title=findViewById(R.id.tv_title);
            btn.setOnClickListener(this);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn:
                    get();
                    break;
                case R.id.click:
                    Toast.makeText(this,title.getText().toString(),Toast.LENGTH_SHORT).show();
                    break;
            }
    
    
        }
        private void get(){
           new Thread(){
               @Override
               public void run() {
                   super.run();
                   String url="http://39.103.196.146:8888/getNewsData/GetNewsDataServlet";
                   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 {
            Request request=new Request.Builder().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);
            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 author=jsonObject.getString("author");
                String content=jsonObject.getString("content");
                Bean bean=new Bean();
                bean.setTitle(title);
                bean.setTime(time);
                bean.setPlace(place);
                bean.setAuthor(author);
                bean.setContent(content);
                list.add(bean);
            }
        }
        private void ceshi(){
            adapter=new Adapter(this,list);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Bean bean= (Bean) adapter.getItem(position);
                    Toast.makeText(MainActivity.this,bean.getTitle(),Toast.LENGTH_SHORT).show();
                    Intent iti=new Intent(MainActivity.this,DatailActivity.class);
                    Bundle bundle = new Bundle();
                    bundle.putSerializable("bean",bean);
                    iti.putExtras(bundle);
                    startActivity(iti);
                }
            });
            list=new ArrayList<>();
        }
    }
    

     DatadilActivity:

    package com.example.linkmysql;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class DatailActivity extends AppCompatActivity {
        TextView title;
        TextView time;
        TextView place;
        TextView author;
        TextView content;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_datail);
            initview();
        }
    
        private void initview() {
            title=findViewById(R.id.datail_title);
            time=findViewById(R.id.datail_time);
            place=findViewById(R.id.datail_place);
            author=findViewById(R.id.datail_author);
            content=findViewById(R.id.datail_content);
            Intent intent = this.getIntent();
            Bean bean=(Bean) intent.getSerializableExtra("bean");
            title.setText(bean.getTitle());
            time.setText(bean.getTime());
            place.setText(bean.getPlace());
            author.setText(bean.getAuthor());
            content.setText(bean.getContent());
        }
    }
    

     效果:

    点击可以看新闻,新闻详细页面格式后续继续进行修改

     

    作者:哦心有
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    20172307 / 20172311 结对编程项目-四则运算 第三周总结
    20172307 2017-2018-2 《程序设计与数据结构》第9 周学习总结
    20172307 结对编程项目-四则运算 第二周 阶段总结
    20172307 2017-2018-2 《程序设计与数据结构》第8周学习总结
    20172307 结对编程项目-四则运算 第一周 阶段总结
    20172307 2017-2018-2 《程序设计与数据结构》实验2报告
    20172307 2017-2018-2 《程序设计与数据结构》第7周学习总结
    20172307 2017-2018-2 《程序设计与数据结构》第6周学习总结
    20172307 2017-2018-2 《程序设计与数据结构》第5周学习总结
    20172307 2017-2018-2 《程序设计与数据结构》第4周学习总结
  • 原文地址:https://www.cnblogs.com/haobox/p/14749351.html
Copyright © 2020-2023  润新知