Andriodjie——登陆注册展示商品

Mvp模式为架构,从网络获取数据进行登录注册的功能,并展示商品信息



从上往下一次编辑

/*
 *INetDataModel

*/


public interface INetDataModel {
    public String loadData(String urlPath);
}

/*
 *MyNetDataModel

  
  
 */

public class MyNetDataModel implements INetDataModel {
    @Override
    public String loadData(String urlPath) {
        String s = NetUTils.loadData(urlPath);
        return s;
    }
}
/*
 *NetUTils

 */
public class NetUTils {

    public static void loadImage(Context context , String url , ImageView view){
        Glide.with(context)
                .load(url)
                .into(view);
    }

    public static String loadData(String urlPath){
        try {
            URL url = new URL(urlPath);
            HttpURLConnection urlconnect = (HttpURLConnection) url.openConnection();
            urlconnect.setRequestMethod("GET");
            urlconnect.setConnectTimeout(5000);
            urlconnect.setReadTimeout(5000);
            if(urlconnect.getResponseCode() == 200){
                InputStream is = urlconnect.getInputStream();
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                try {
                    int len;
                    byte[] b = new byte[1024];
                    while( (len = is.read(b)) != -1 ){
                        baos.write(b,0,len);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                System.out.println("LoadData = "+baos.toString());
                return baos.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

/*
 *MyNetDataPresenter

 */

public class MyNetDataPresenter {
    private Context context;
    private INetDataView iNetDataView;
    private INetDataModel iNetDataModel;

    public MyNetDataPresenter(Context context, INetDataView iNetDataView) {
        this.context = context;
        this.iNetDataView = iNetDataView;
        iNetDataModel = new MyNetDataModel();
    }

    public void loadDataFrmoNet(){
        new AsyncTask<String,Void,String>(){
            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                if(s != null){
                    Gson gson = new Gson();
                    ShangPinBean shangPinBean = gson.fromJson(s, ShangPinBean.class);
                    List<ShangPinBean.DataBean.DefaultGoodsListBean> defaultGoodsList = shangPinBean.getData().getDefaultGoodsList();
                    iNetDataView.setDataInShang(defaultGoodsList);
                }
            }

            @Override
            protected String doInBackground(String... strings) {
                String s = iNetDataModel.loadData("http://m.yunifang.com/yunifang/mobile/home");
                return s;
            }
        }.execute();
    }

}
 
 
   
   
/*
 *INetDataView

 */
public interface INetDataView {
    public void setDataInShang(List<ShangPinBean.DataBean.DefaultGoodsListBean> defaultGoodsList);
}
 
 
   
   
/*
 *GeRenActivity 
*/
public class GeRenActivity extends AppCompatActivity {

    private SharedPreferences sp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ge_ren);
        sp = getSharedPreferences("MyLogin",MODE_PRIVATE);
    }

    public void geren_shanpin(View view){
        startActivity(new Intent(GeRenActivity.this,ShangPinActivity.class));
    }

}

  
  
     
     
/*
 *首页登录注册 
*/
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;

import android.widget.Toast;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {
    private EditText main_zhangaho,mian_mima;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        main_zhangaho = (EditText) findViewById(R.id.main_ed_zhanghao);
        mian_mima = (EditText) findViewById(R.id.main_ed_mima);

    }

    public void main_login(View view){
        if(main_zhangaho != null && mian_mima != null){
            if(main_zhangaho.length() != 11){
                Toast.makeText(this, "请输入是一位手机号", Toast.LENGTH_SHORT).show();
            }else{
                MyLogin();
            }
        }
    }

    private void MyLogin() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                try {
                    OkHttpClient okHttpClient = new OkHttpClient();
                    RequestBody formBody = new FormBody.Builder().add("mobile", main_zhangaho.getText().toString())
                            .add("password", mian_mima.getText().toString())
                            .build();
                    Request request = new Request.Builder().url("http://120.27.23.105/user/login")
                            .post(formBody)
                            .build();
                    Response jsonStr = okHttpClient.newCall(request).execute();
                    InputStream is = jsonStr.body().byteStream();
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    try {
                        int len;
                        byte[] b = new byte[1024];
                        while( (len = is.read(b)) != -1 ){
                            baos.write(b,0,len);
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    SharedPreferences sp = getSharedPreferences("MyLogin",MODE_PRIVATE);
                    sp.edit().putString("MyLogin",baos.toString()).commit();
                    System.out.println("login ====== "+baos.toString());
                    if(jsonStr.code() == 200){
                        startActivity(new Intent(MainActivity.this,GeRenActivity.class));
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    public void main_zhuce(View view){
       startActivity(new Intent(MainActivity.this,ZhuCeActivity.class));
    }
}
     
     
/*
 *注册页面
*/
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class ZhuCeActivity extends AppCompatActivity {
    EditText zhuce_mima,zhuce_zhang;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zhu_ce);

        zhuce_mima = (EditText) findViewById(R.id.zhuce_mima);
        zhuce_zhang = (EditText) findViewById(R.id.zhuce_zhang);
    }

    public void zhuce_zhuce(View view){
        if(zhuce_mima != null && zhuce_zhang != null){
            if(zhuce_zhang.length() == 11){

                zhuceUser();
            }else{
                Toast.makeText(this, "请输入11为手机号", Toast.LENGTH_SHORT).show();
            }
        }else{
            Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show();
        }
    }

    private void zhuceUser() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                try {
                    OkHttpClient okHttpClient = new OkHttpClient();
                    RequestBody formBody = new FormBody.Builder().add("mobile", zhuce_zhang.getText().toString())
                            .add("password", zhuce_mima.getText().toString())
                            .build();
                    Request request = new Request.Builder().url("http://120.27.23.105/user/reg")
                            .post(formBody)
                            .build();
                    Response jsonStr = okHttpClient.newCall(request).execute();
                    InputStream is = jsonStr.body().byteStream();
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    try {
                        int len;
                        byte[] b = new byte[1024];
                        while( (len = is.read(b)) != -1 ){
                            baos.write(b,0,len);

                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    System.out.println("zhuce ====== "+baos.toString());
                    if(jsonStr.code() == 200){
                        finish();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }.start();

    }

}
     
     
/*
 *展示商品
*/
public class ShangPinActivity extends AppCompatActivity {
    private ShangPinBean bean;
    private EditText sousuo;
    private RecyclerView recyclerView;
    private MyRecyclerViewAdapter myRecyclerViewAdapter;

    private Handler hand = new Handler(){
        @Override
        public void handleMessage(Message msg) {

            super.handleMessage(msg);
            String s = (String) msg.obj;
            Gson gson=new Gson();
            bean=gson.fromJson(s,ShangPinBean.class);
            myRecyclerViewAdapter=new MyRecyclerViewAdapter(ShangPinActivity.this,bean);
            recyclerView.setAdapter(myRecyclerViewAdapter);

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shang_pin);
       // sousuo = (EditText) findViewById(R.id.sou);
        recyclerView=(RecyclerView)findViewById(R.id.myRecycler);
        GridLayoutManager linear=new GridLayoutManager(ShangPinActivity.this,1);
        recyclerView.setLayoutManager(linear);
        OkHttpClient mOkHttpClient = new OkHttpClient();
        //创建一个Request
        Request request = new Request.Builder()
                .url("http://m.yunifang.com/yunifang/mobile/home")
                .build();
        System.out.println(request+"xxxxxxxxxxxx");
        mOkHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                InputStream inputStream = response.body().byteStream();
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
                int i;
                final byte[] b = new byte[1024];
                while( (i = inputStream.read(b)) != -1 ){
                    baos.write(b,0,i);
                }

                Message msg = Message.obtain();
                msg.obj = baos.toString();
                hand.sendMessage(msg);
            }
        });



    }




//    public void qiehuan(View v){
//        recyclerView.setLayoutManager(new GridLayoutManager(ShangPinActivity.this,2));
//        myRecyclerViewAdapter.notifyDataSetChanged();
//    }



    class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyHolder>{
        private Context context;
        private ShangPinBean bean;

        public MyRecyclerViewAdapter(Context context, ShangPinBean bean) {
            this.context = context;
            this.bean = bean;
        }

        @Override
        public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            MyHolder myHolder=new MyHolder(View.inflate(ShangPinActivity.this,R.layout.item1,null));
            System.out.println("xxxx"+myHolder);
            return myHolder;
        }

        @Override
        public void onBindViewHolder(MyHolder holder, int position) {
            holder.item1_title.setText(bean.getData().getDefaultGoodsList().get(position).getGoods_name());
            holder.item1_price.setText(""+(int) bean.getData().getDefaultGoodsList().get(position).getShop_price());
            NetUTils.loadImage(ShangPinActivity.this,bean.getData().getDefaultGoodsList().get(position).getGoods_img(),holder.item1_iamge);
        }

        @Override
        public int getItemCount() {
            return bean.getData().getDefaultGoodsList().size();
        }

        public class MyHolder extends RecyclerView.ViewHolder {

            final TextView item1_title;
            final TextView item1_price;
            final ImageView item1_iamge;
            public MyHolder(View itemView) {
                super(itemView);
                item1_title = (TextView) itemView.findViewById(R.id.item1_title);
                item1_price = (TextView) itemView.findViewById(R.id.item1_price);
                item1_iamge=(ImageView) itemView.findViewById(R.id.item1_iamge);
            }
        }
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值