login

//主页面

package com.bwie.week02;

import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.bwie.week02.fragment.FristFragment;
import com.bwie.week02.fragment.MyFragment;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ViewPager vpFragment;
    private TextView txtFrist;
    private TextView txtMy;
    private List<Fragment> fragments;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        vpFragment = findViewById(R.id.vp_fragment);
        txtFrist = findViewById(R.id.txt_frist);
        txtMy = findViewById(R.id.txt_my);

        txtFrist.setOnClickListener(this);
        txtMy.setOnClickListener(this);

        fragments = new ArrayList<>();

        FristFragment ff = new FristFragment();
        MyFragment mf = new MyFragment();
        fragments.add(ff);
        fragments.add(mf);

        txtFrist.setTextColor(Color.RED);

        vpFragment.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public int getCount() {
                return fragments.size();
            }

            @Override
            public Fragment getItem(int position) {
                return fragments.get(position);
            }
        });

        vpFragment.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                color(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

    }
    private void  color(int index){
        txtFrist.setTextColor(index==0? Color.RED:Color.BLACK);
        txtMy.setTextColor(index==1? Color.RED:Color.BLACK);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.txt_frist:
                vpFragment.setCurrentItem(0);
                color(0);
                break;
            case R.id.txt_my:
                vpFragment.setCurrentItem(1);
                color(1);
                break;
        }
    }
}

//p层

package com.bwie.week02.presenter;

import android.text.TextUtils;

import com.bwie.week02.bean.LoginBean;
import com.bwie.week02.callback.ICallBack;
import com.bwie.week02.loginmodel.LoginModel;
import com.bwie.week02.view.LoginView;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;

/**
 * Created by dell on 2018/10/13.
 */

public class LoginPresenter {
    private LoginView lv;
    private LoginModel loginModel;

    public void attach(LoginView lv) {
        this.lv = lv;
        loginModel = new LoginModel();
    }

    public void detach() {
        if (lv != null) {
            lv = null;
        }
    }

    public void check() {
        if (TextUtils.isEmpty(lv.getUsername()) || TextUtils.isEmpty(lv.getPassword())) {
            lv.check(false);
        } else {
            lv.check(true);
        }
    }

    public void login(String url) {
        lv.show();

        final String username = lv.getUsername();
        final String password = lv.getPassword();

        url = url.concat("?mobile=").concat(username).concat("&password=").concat(password);
        Type type = new TypeToken<LoginBean>() {
        }.getType();
        loginModel.login(url, new ICallBack() {
            @Override
            public void onSuccess(Object obj) {
                lv.success(obj);
                LoginBean bean = (LoginBean) obj;
                if (bean.getCode().equals("0")) {
                    lv.gotoMain();
                }
            }

            @Override
            public void onFailed(Exception e) {
                lv.failed(e);
            }
        }, type);
    }

}

//v层

package com.bwie.week02.view;

import android.content.Context;

/**
 * Created by dell on 2018/10/13.
 */

public interface LoginView<T> {
    void success(T t);

    void failed(Exception e);

    String getUsername();

    String getPassword();

    void setUsername(String username);

    void setPassword(String password);

    void show();

    void gotoMain();

    void check(boolean b);
}

//httputils页面

package com.bwie.week02.utils;

import android.os.Handler;

import com.bwie.week02.callback.ICallBack;
import com.google.gson.Gson;

import java.io.IOException;
import java.lang.reflect.Type;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

/**
 * Created by dell on 2018/10/13.
 */

public class HttpUtils {
    private static volatile HttpUtils instance;

    private OkHttpClient client;

    private Handler handler = new Handler();

    private HttpUtils() {
        client = new OkHttpClient();
    }

    public static HttpUtils getInstance() {
        if (instance == null) {
            synchronized (HttpUtils.class) {
                if (null == instance) {
                    instance = new HttpUtils();
                }
            }
        }
        return instance;
    }


    public void get(String url, final ICallBack callBack, final Type type) {
        Request request = new Request.Builder()
                .get()
                .url(url)
                .build();

        Call call = client.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, final IOException e) {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callBack.onFailed(e);
                    }
                });
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String result = response.body().string();
                Gson gson = new Gson();
                final Object o = gson.fromJson(result, type);
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callBack.onSuccess(o);
                    }
                });
            }
        });
    }
}
//m层
public class LoginModel {
    public void login(String url, ICallBack callBack, Type type) {
        HttpUtils.getInstance().get(url, callBack, type);
    }
}

//图片

package com.bwie.week02.fragment;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bwie.week02.R;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by dell on 2018/10/13.
 */

public class FristFragment extends Fragment {

    private TextView txtSao;
    private Button btnCreate;
    private EditText editText;
    private ViewPager vpBanner;
    private ImageView img;
    private List<String> imgList;

   private Handler handler = new Handler(){
       @Override
       public void handleMessage(Message msg) {
           super.handleMessage(msg);
           if (msg.what == 100){
               int current = vpBanner.getCurrentItem();
               if (current<imgList.size()-1){
                   current++;
               }else {
                   current = 0;
               }
               vpBanner.setCurrentItem(current);
               sendEmptyMessageDelayed(100,2000);
           }
       }
   } ;
    private int REQUEST_CODE = 100;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.frist_item,container,false);
        txtSao = v.findViewById(R.id.txt_sao);
        btnCreate = v.findViewById(R.id.btn_create);
        img = v.findViewById(R.id.img);
        vpBanner = v.findViewById(R.id.vp_banner);
        editText = v.findViewById(R.id.edit_text);
        return v;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        imgList = new ArrayList<>();
        imgList.add("https://www.zhaoapi.cn/images/quarter/ad1.png");
        imgList.add("https://www.zhaoapi.cn/images/quarter/ad2.png");
        imgList.add("https://www.zhaoapi.cn/images/quarter/ad3.png");
        imgList.add("https://www.zhaoapi.cn/images/quarter/ad4.png");

        vpBanner.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return imgList.size();
            }

            @Override
            public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
                return view == object;
            }

            @NonNull
            @Override
            public Object instantiateItem(@NonNull ViewGroup container, int position) {
                ImageView img = new ImageView(getActivity());
                Glide.with(getActivity()).load(imgList.get(position)).into(img);
                container.addView(img);
                return img;
            }

            @Override
            public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
                container.removeView((View) object);
            }
        });
        handler.sendEmptyMessageDelayed(100,2000);


        btnCreate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String textContent = editText.getText().toString();
                if (TextUtils.isEmpty(textContent)) {
                    Toast.makeText(getContext(), "您的输入为空!", Toast.LENGTH_SHORT).show();
                    return;
                }
                editText.setText("");
                Bitmap mBitmap = CodeUtils.createImage(textContent, 400, 400, null);
                img.setImageBitmap(mBitmap);
            }
        });


        txtSao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), CaptureActivity.class);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        handler.removeCallbacksAndMessages(null);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值