zoukankan      html  css  js  c++  java
  • 关于接口的初步练习

    这是主函数

    package com.example.com.webtext;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.RecyclerView;
    import android.support.v7.widget.StaggeredGridLayoutManager;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import com.bumptech.glide.Glide;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import static com.example.com.webtext.R.id.button;
    
    public class MainActivity extends AppCompatActivity implements View .OnClickListener{
        private List<massage > Mymassage=new ArrayList<>() ;
        TextView nameText;
        TextView summaryText;
        ImageView img;
        Button sendRequest;
        private static final String TAG = "MainActivity";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            sendRequest=(Button) findViewById(button) ;
            nameText =(TextView) findViewById(R.id.name ) ;
            summaryText =(TextView) findViewById(R.id.summery);
            img=(ImageView)  findViewById(R.id.photo) ;
            sendRequest .setOnClickListener(this) ;
        }
    
        @Override
        public void onClick(View v ){
            if(v.getId() == button){
                HttpUtil .sendHttpRequest("https://qcloud.waydrow.com/LoveInn/index.php/Home/App/getInfoList",new HttpCallbackListener(){
                    @Override
                    public void onFinish(String response){
                        //Log.d(TAG, "onFinish: "+response);
                        parseJSONWithJSONObject(response );
                    }
                    @Override
                    public void onError(Exception e){
                        e.printStackTrace();;
                    }
                });
            }
            setRecyclerview();
        }
        private void parseJSONWithJSONObject(String jsonData){
            try{
                JSONArray jsonArray =new JSONArray(jsonData ) ;
                for(int i=0;i<jsonArray .length() ;i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    String name = jsonObject.getString("name");
                    String summary = jsonObject.getString("summary");
                    String imgUrl = "https://qcloud.waydrow.com" + jsonObject.getString("photo");
                    massage massage1 = new massage(name, summary, imgUrl);
                    Mymassage.add(massage1);
                }
            }
            catch (Exception e){
                e.printStackTrace() ;
            }
        }
        public void setRecyclerview(){
            RecyclerView recyclerView =(RecyclerView ) findViewById(R.id.recycler_view);
            StaggeredGridLayoutManager LayoutManager=new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL) ;
            recyclerView.setLayoutManager(LayoutManager);
            adapter Adapter =new adapter(Mymassage );
            recyclerView.setAdapter(Adapter);
            Mymassage =null ;
        }
    }

    这是开启连接的类

    package com.example.com.webtext;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.ProtocolException;
    import java.net.URL;
    
    /**
     * Created by 定不负相思懿 on 2017/5/10.
     */
    
    public class HttpUtil {
        public static void sendHttpRequest(final String adress,final HttpCallbackListener linsener){
            new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpURLConnection connection =null ;
                    BufferedReader reader =null;
                    try {
                        URL url=new URL(adress);
                        connection =(HttpURLConnection ) url.openConnection() ;
                        connection .setRequestMethod("GET");
                        connection .setConnectTimeout(8000);
                        connection .setReadTimeout(8000);
                        connection .setDoInput(true);
                        connection .setDoOutput(true);
                        InputStream in=connection.getInputStream();
                        reader =new BufferedReader(new InputStreamReader(in)) ;
                        StringBuilder response=new StringBuilder();
                        String line;
                        while((line=reader .readLine()) !=null){
                           response .append(line) ;
                        }
                        if(linsener !=null){
                            linsener.onFinish(response .toString());
                        }
                    } catch (ProtocolException e) {
                        linsener.onError(e);
                    } catch (MalformedURLException e) {
                        linsener.onError(e);
                    } catch (IOException e) {
                        linsener.onError(e);
                    } finally{
                        if(connection!=null ){
                            connection .disconnect();
                        }
                    }
                }
            }).start(); ;
        }
    }

    还有类和adapter

    package com.example.com.webtext;
    
    /**
     * Created by 定不负相思懿 on 2017/5/11.
     */
    
    public class massage {
        String name;
        String summary;
        String photo;
        public massage(String name, String summary, String photo){
            this.name =name;
            this.summary =summary ;
            this.photo =photo;
        }
        public String getname(){
            return name;
        }
        public String getsummary (){
            return summary ;
        }
        public String getphoto(){
            return photo;
        }
    }
    View Code
    package com.example.com.webtext;
    
    import android.content.Context;
    import android.content.Intent;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import com.bumptech.glide.Glide;
    
    import java.util.List;
    
    /**
     * Created by 定不负相思懿 on 2017/5/11.
     */
    
    public class adapter extends RecyclerView.Adapter<adapter .ViewHolder >{
        private List<massage> mymassage;
        public adapter (List<massage> fruit3){
            mymassage=fruit3;
        }
        static class ViewHolder extends RecyclerView.ViewHolder {
            ImageView image;
            TextView name;
            TextView summary;
            View fruitview;
            Context context1;
            public ViewHolder(View view) {
                super(view);
                fruitview =view;
                image=(ImageView ) view.findViewById(R.id.photo) ;
                name =(TextView ) view.findViewById(R.id.name) ;
                summary =(TextView ) view.findViewById(R.id.summery) ;
            }
    
        }
        @Override
        public ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType) {
            View view= LayoutInflater.from(parent .getContext() ).inflate(R.layout.recyclerview_layout,parent ,false ) ;
            final ViewHolder holder=new ViewHolder(view );
            holder.context1=parent .getContext() ;
            holder.fruitview.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v){
                    int position=holder.getAdapterPosition() ;
                    massage  massage =mymassage  .get(position );
                }
            }) ;
            return holder ;
        }
    
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            massage mymassage1=mymassage.get(position );
            holder .name.setText(mymassage1  .getname() ) ;
            holder .summary .setText(mymassage1 .getsummary() ) ;
            Glide.with(holder .context1).load(mymassage1.getphoto()).into(holder.image );
        }
        @Override
        public int getItemCount() {
            return mymassage .size() ;
        }
    }
    View Code

    最重要的!就是接口

    public interface HttpCallbackListener {
    
        void onFinish(String response);
        void onError(Exception e);
    
    }

    虽然看着接口很简单,但是...用起来就知道了。当你会的时候就会发现真的很方便,但是如果你不会的话,不如直接写函数。

  • 相关阅读:
    kvm初体验之四:从Host登录Guest的五种方式
    kvm初体验之三:vm的安装及管理
    CentOS Wifi Connection
    kvm初体验之二:安装
    kvm初体验之一:参考文档
    有6种不同颜色的球,每种球有无数个。现在取5个球,求取出5、4、3、2种不同颜色球的概率分别为多少
    求两个字符串的最长连续子串
    不用除法来实现整数的除法运算
    抽象类和接口的区别
    o(n)的时间复杂判断回文数
  • 原文地址:https://www.cnblogs.com/wxy990118/p/6842411.html
Copyright © 2011-2022 走看看