• recyclerview 主活动里监听点击事件


      记性真的不行啊...贴上来有时间多复习复习

    主活动

    package com.example.com.webtext;
    
    import android.content.Intent;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.SwipeRefreshLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.RecyclerView;
    import android.support.v7.widget.StaggeredGridLayoutManager;
    import android.support.v7.widget.Toolbar;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.bumptech.glide.Glide;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    
    public class MainActivity extends AppCompatActivity {
        private List<massage > Mymassage=new ArrayList<>() ;
        private List<massage > Mymassage1=new ArrayList<>() ;
        private SwipeRefreshLayout swipeRefresh;
        TextView nameText;
        TextView summaryText;
        ImageView img;
        String adress;
        adapter massageAdapter;
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu .toolbar ,menu  ) ;
            return true;
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item .getItemId() ){
                case R.id.backup :
                    Toast.makeText(this,"You clicked Backup",Toast .LENGTH_SHORT ).show() ;
                    break;
                case R.id.delete  :
                    Toast.makeText(this,"You clicked Delete",Toast .LENGTH_SHORT ).show() ;
                    break;
                case R.id.settings :
                    Toast.makeText(this,"You clicked Settings",Toast .LENGTH_SHORT ).show() ;
                    break;
                default :
            }
            return true;
        }
        private static final String TAG = "MainActivity";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar =(Toolbar) findViewById(R.id.toolbar) ;
            setSupportActionBar(toolbar);
            adress ="https://qcloud.waydrow.com/LoveInn/index.php/Home/App/getInfoList";
            nameText =(TextView) findViewById(R.id.name ) ;
            summaryText =(TextView) findViewById(R.id.summery);
            img=(ImageView)  findViewById(R.id.photo) ;
            RecyclerView recyclerView =(RecyclerView ) findViewById(R.id.recycler_view);
            StaggeredGridLayoutManager LayoutManager=new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL) ;
            recyclerView .setLayoutManager(LayoutManager );
            massageAdapter =new adapter(Mymassage );
            recyclerView .setAdapter(massageAdapter ) ;
            getHTTP() ;
            /*massageAdapter.setOnItemClickListener(new adapter.OnItemClickListener(){
                @Override
                public void onItemClick(View view, int position) {
                    massage  massage =Mymassage .get(position );
                    Intent intent =new Intent(MainActivity .this,DetailMassage.class );
                    intent .putExtra("id",massage.getId()) ;
                    MainActivity .this.startActivity(intent);
                    Toast.makeText(MainActivity.this, "dfghjk",Toast .LENGTH_SHORT ).show();
                }
            });*/
            swipeRefresh=(SwipeRefreshLayout)  findViewById(R.id.swipe_refresh );
            swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                Thread.sleep(750);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    getHTTP1() ;
                                    swipeRefresh.setRefreshing(false);
                                }
                            });
                        }
                    }).start();
                }
            });
        }
        public void getHTTP(){
               HttpUtil.sendHttpRequest(adress ,new HttpCallbackListener(){
                @Override
                public void onFinish(String response){
                    parseJSONWithJSONObject(response );
                   }
                @Override
                public void onError(Exception e){
                    e.printStackTrace();
                    Toast .makeText(MainActivity .this,"There is no detial!",Toast .LENGTH_LONG).show() ;
                }
            });
        }
    
        public void getHTTP1(){
            HttpUtil.sendHttpRequest(adress ,new HttpCallbackListener(){
                @Override
                public void onFinish(String response){
                    parseJSONWithJSONObject1(response );
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            massageAdapter.notifyDataSetChanged();
                        }
                    }) ;
                }
                @Override
                public void onError(Exception e){
                    e.printStackTrace();
                    Toast .makeText(MainActivity .this,"There is no detial!",Toast .LENGTH_SHORT ).show() ;
                }
            });
    
        }
        private void parseJSONWithJSONObject1(final 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");
                    String id=jsonObject .getString("id") ;
                    massage massage1 = new massage(name, summary, imgUrl,id);
                    Mymassage .add(massage1 ) ;
                }
                Mymassage1 =Mymassage ;
            }
            catch (Exception e){
                e.printStackTrace() ;
            }
        }
        private void parseJSONWithJSONObject(final 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");
                    String id=jsonObject .getString("id") ;
                    massage massage1 = new massage(name, summary, imgUrl,id);
                    Mymassage .add(massage1 ) ;
                }
               setUI();
            }
            catch (Exception e){
                e.printStackTrace() ;
            }
        }
        public void setUI(){
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    setRecyclerview();
                }
            }) ;
        }
        public void setRecyclerview(){
            RecyclerView recyclerView =(RecyclerView ) findViewById(R.id.recycler_view);
            StaggeredGridLayoutManager LayoutManager=new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL) ;
            recyclerView .setLayoutManager(LayoutManager );
            if(Mymassage .size() ==0){
                Toast .makeText(MainActivity .this,"There is no detial!",Toast .LENGTH_SHORT ).show() ;
                String summary = "summary";
                String imgUrl = " " ;
                massage massage1 = new massage("", summary, imgUrl,"0");
                Mymassage.add(massage1 );
                massageAdapter = new adapter(Mymassage);
                recyclerView.setAdapter(massageAdapter);
                Mymassage =new ArrayList<>();
            }
            else {
                massageAdapter = new adapter(Mymassage);
                recyclerView.setAdapter(massageAdapter);
            }
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    massageAdapter.setOnItemClickListener(new adapter.OnItemClickListener(){
                        @Override
                        public void onItemClick(View view, int position) {
                            massage  massage1 =Mymassage1 .get(position );
                            Intent intent =new Intent(MainActivity .this,DetailMassage.class );
                            intent .putExtra("id",massage1.getId()) ;
                            MainActivity .this.startActivity(intent);
                        }
                    });
                }
            });
            Mymassage1 =Mymassage ;
            Mymassage =new ArrayList<>();
        }
    }
    View Code

    adapter,里面定义的接口很重要

    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.ArrayList;
    import java.util.List;
    
    /**
     * Created by 定不负相思懿 on 2017/5/11.
     */
    
    public class adapter extends RecyclerView.Adapter<adapter .ViewHolder >implements View.OnClickListener{
        private List<massage> mymassage=new ArrayList<>();
        public adapter (List<massage> fruit3){
            mymassage=fruit3;
        }
        private  OnItemClickListener mOnItemClickListener = null;
        public void setOnItemClickListener(OnItemClickListener listener) {
            this.mOnItemClickListener = listener;
        }
        public static interface OnItemClickListener {
            void onItemClick(View view , int position);
        }
    
        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 ) ;
            ViewHolder holder=new ViewHolder(view );
            holder.context1=parent .getContext() ;
            view.setOnClickListener(this);
           /* holder.fruitview.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v){
                    int position=holder.getAdapterPosition() ;
                    massage  massage =mymassage .get(position );
                    Intent intent =new Intent(parent .getContext(),DetailMassage.class );
                    intent .putExtra("id",massage.getId()) ;
                    parent.getContext().startActivity(intent);
                }
            }) ;*/
            return holder ;
        }
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            massage mymassage1=mymassage.get(position );
            holder.itemView.setTag(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() ;
        }
        @Override
        public void onClick(View v) {
            if (this.mOnItemClickListener != null) {
                this.mOnItemClickListener.onItemClick(v,(int)v.getTag() );
            }
        }
    }
    View Code

    post方法,还是用比较简单的字符串拼接吧(这个和刚才的不是同一个程序,是一个用户名和密码发送给服务器的登录)

    package com.example.com.webtext;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    
    /**
     * Created by 定不负相思懿 on 2017/5/17.
     */
    
    public class HttpPost {
        public static void sendHttpRequest(final String adress, final String name, final String password, final InterfacePost linsener) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpURLConnection connection =null ;
                    try {
                        URL url=new URL(adress);
                        String a=url.toString() ;
                        connection =(HttpURLConnection ) url.openConnection() ;
                        connection .setRequestMethod("POST");
                        connection .setConnectTimeout(8000);
                        connection .setReadTimeout(8000);
                        connection .setDoInput(true);
                        connection .setDoOutput(true);
                        String requestStringBytes="username="+name +"&password="+password;
                        OutputStream outputStream = connection.getOutputStream();
                        outputStream.write(requestStringBytes.getBytes());
                        outputStream.close();
                        InputStream in=connection.getInputStream();
                        BufferedReader 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 (Exception e) {
                        linsener.onError(e);
                    } finally{
                        if(connection!=null ){
                            connection .disconnect();
                        }
                    }
                }
            }).start();
        }
    }
    View Code
  • 相关阅读:
    weak引用变量是否线程安全
    VMware vSphere HyperVisor安装过程记录
    【转载】VMWare ESXi 5.0和vSphere Client安装和配置
    Wmware桥接网络虚拟机无法上网的问题
    虚拟机移动后重启网络时提示Device does not seem to be present
    Eclipse maven工程 Missing artifact com.sun:tools:jar:1.5.0:system 解决方法
    【转】使用JIRA搭建企业问题跟踪系统【个人推荐】
    使用XAMPP本地安装Wordpress博客
    【转载】维度表和事实表的区别
    maven工程的如何进行代码调试
  • 原文地址:https://www.cnblogs.com/wxy990118/p/6875118.html
Copyright © 2020-2023  润新知