1.工具类
public class HttpUtils {
public final Api api;
//单例
private static HttpUtils httpUtils=null;
public static HttpUtils getInstance(){
httpUtils = new HttpUtils();
return httpUtils;
}
//私有化的构造方法
private HttpUtils(){
//创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.writeTimeout(5,TimeUnit.SECONDS)
.readTimeout(5,TimeUnit.SECONDS)
.addNetworkInterceptor(new LogginInterceptor())
.build();
//创建retrofit对象
Retrofit retrofit = new Retrofit
.Builder()
//baseUrl(“就是写接口固定不变的前半部分”)
.baseUrl(“http://172.17.8.100/”)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(okHttpClient)
.build();
//实例化接口
api = retrofit.create(Api.class);
}
//拦截器
private class LogginInterceptor implements Interceptor {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request request = chain.request();
RequestBody body = request.body();
Headers headers = request.headers();
okhttp3.Response response = chain.proceed(request);
Headers headers1 = response.headers();
return response;
}
}
public boolean Iswork(Context context)
{
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
return activeNetworkInfo!=null && activeNetworkInfo.isAvailable();}
}
2.接口
(1)public interface MainView {
void Pm(T t);
}
(2)public interface ShopView {
void Pm(T t);
}
3.presenter层
public abstract class Basepresenter {
V view;
public V getView() {
return view;
}
public void setView(V view) {
this.view = view;
}
public void detachView()
{
this.view = null;
}
}
4.BaseActivity
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getView());
initView();
initDate();
showView();
}
public abstract int getView();
public abstract void initView();
public abstract void initDate();
public abstract void showView();
}
5.MainActivity
public class MainActivity extends BaseActivity {
@BindView(R.id.viewpager)
ViewPager viewPager;
@BindView(R.id.group)
RadioGroup radioGroup;
private ArrayList list;
private HomeFrag homeFrag;
private ShopCartFrag two;
private MineFrag three;
private Unbinder unbinder;
@Override
public int getView() {
return R.layout.activity_main;
}
@Override
public void initView() {
unbinder = ButterKnife.bind(this);
}
@Override
public void initDate() {
list = new ArrayList<>();
homeFrag = new HomeFrag();
two = new ShopCartFrag();
three = new MineFrag();
list.add(homeFrag);
list.add(two);
list.add(three);
}
@Override
public void showView() {
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
radioGroup.check(radioGroup.getChildAt(0).getId());
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
radioGroup.check(radioGroup.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.r1: viewPager.setCurrentItem(0);break;
case R.id.r2: viewPager.setCurrentItem(1);break;
case R.id.r3: viewPager.setCurrentItem(2);break;
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
unbinder.unbind();
}
}
//布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
android:layout_width=“match_parent”
android:layout_height=“0dp”
android:layout_weight=“9”
android:id="@+id/viewpager"
></android.support.v4.view.ViewPager>
/三个Fragment页面
(1)public class HomeFrag extends Fragment implements MainView {
private EditText shu;
private Button suosou;
private SearchHistroyView searchHistroyView;
private TextView qing;
private RecyclerView li_recy;
private Presentersearch presenter;
private SearchAdapter liAdapter;
private TextView textView;
//1.Fragment的View加载完毕的标记
private boolean isViewCreated;
//2.Fragment对用户可见的标记
private boolean isUIVisible;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.home, container, false);
presenter = new Presentersearch();
presenter.setView(this);
shu = view.findViewById(R.id.shu);
suosou = view.findViewById(R.id.sou);
textView = view.findViewById(R.id.tiao);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), CartActivity.class);
startActivity(intent);
}
});
searchHistroyView = view.findViewById(R.id.search_history);
qing = view.findViewById(R.id.qing);
li_recy = view.findViewById(R.id.li_recy);
li_recy.setLayoutManager(new LinearLayoutManager(getActivity()));
liAdapter = new SearchAdapter(getActivity());
li_recy.setAdapter(liAdapter);
shu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchHistroyView.setVisibility(View.VISIBLE);
qing.setVisibility(View.VISIBLE);
li_recy.setVisibility(View.GONE);
}
});
suosou.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Editable text= shu.getText();
String name1 = text.toString();
if (isViewCreated && isUIVisible) {
presenter.loadDate(name1,1,10);
isViewCreated = false;
isUIVisible = false;
}
TextView textView = new TextView(getActivity());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(100,10,10,10);//4个参数按顺序分别是左上右下
textView.setText(text);
searchHistroyView.addView(textView);
}
});
qing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchHistroyView.removeAllViews();
}
});
return view;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
isUIVisible = true;
} else {
isUIVisible = false;
}
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
isViewCreated = true;
}
@Override
public void Pm(Object o) {
SearchBean li = (SearchBean) o;
List<SearchBean.ResultBean> result = li.getResult();
qing.setVisibility(View.GONE);
searchHistroyView.setVisibility(View.GONE);
li_recy.setVisibility(View.VISIBLE);
liAdapter.getDate(result);
}
@Override
public void onDestroy() {
super.onDestroy();
presenter.detachView();
}
}
(2)public class ShopCartFrag extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.cart, container, false);
return view;
}
}
(3)