recyclerview 主活動裏監聽點擊事件

  記性真的不行啊...貼上來有時間多複習複習php

主活動java

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,裏面定義的接口很重要android

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方法,仍是用比較簡單的字符串拼接吧(這個和剛纔的不是同一個程序,是一個用戶名和密碼發送給服務器的登陸)web

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
相關文章
相關標籤/搜索