//主页面 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); } }