第三方登錄

package com.example.erzhoukaomoni;

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.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Toast;

import com.example.erzhoukaomoni.bean.User;
import com.example.erzhoukaomoni.presenter.PresenterImpl;
import com.example.erzhoukaomoni.view.Iview;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity implements View.OnClickListener,Iview {

private String mUrl = "";
private EditText Edit_Name;
private EditText Edit_Pass;
private Button Send_btn;
private Button San_Deng_btn;
private PresenterImpl presenter;
private int type=1;
private SharedPreferences mShared;
private SharedPreferences.Editor mEditor;
private CheckBox rem_pw;
private CheckBox auto_login;
private String name;
private String pass;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    presenter = new PresenterImpl(this);

    mShared = getSharedPreferences("nnn",MODE_PRIVATE);
    mEditor = mShared.edit();

    if(mShared.getBoolean("ISCHECK",false)){
        rem_pw.setChecked(true);
        Edit_Name.setText(mShared.getString("USER_NAME",""));
        Edit_Pass.setText(mShared.getString("PASSWORD",""));
        if(mShared.getBoolean("AUTO_ISCHECK",false)){
            auto_login.setChecked(true);
            startActivity(new Intent(MainActivity.this,Main2Activity.class));

        }
    }
        rem_pw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if(rem_pw.isChecked()){
                    mShared.edit().putBoolean("ISCHECK",true).commit();
                    Toast.makeText(MainActivity.this,"記住密碼已選中",Toast.LENGTH_SHORT).show();

                }else{
                    mShared.edit().putBoolean("ISCHECK",false).commit();
                    Toast.makeText(MainActivity.this,"記住密碼沒有選中",Toast.LENGTH_SHORT).show();
                }

            }
        });


 auto_login.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
     @Override
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if(auto_login.isChecked()){
             Toast.makeText(MainActivity.this,"自動登錄已選中",Toast.LENGTH_SHORT).show();
             mShared.edit().putBoolean("AUTO_ISCHECK",true).commit();
         }else{
             mShared.edit().putBoolean("AUTO_ISCHECK",true).commit();
             Toast.makeText(MainActivity.this,"自動登錄沒有選中",Toast.LENGTH_SHORT).show();
         }
     }
 });


}

private void initView() {
    Edit_Name = (EditText) findViewById(R.id.Edit_Name);
    Edit_Pass = (EditText) findViewById(R.id.Edit_Pass);
    Send_btn = (Button) findViewById(R.id.Send_btn);
    San_Deng_btn = (Button) findViewById(R.id.San_Deng_btn);
    rem_pw = findViewById(R.id.Ji_Box);
    auto_login = findViewById(R.id.Zi_Box);

    Send_btn.setOnClickListener(this);
    San_Deng_btn.setOnClickListener(this);

// San_Deng_btn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener);
// }
// });
}

public static boolean isMobile(String mobile) {
    // "[1]"代表第1位爲數字1,"[358]"代表第二位可以爲3、5、8中的一個,"\\d{9}"代表後面是可以是0~9的數字,有9位。
    String regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
    Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    Matcher m = p.matcher(mobile);
    return m.matches();

}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.Send_btn:
            name = Edit_Name.getText().toString().trim();
            pass = Edit_Pass.getText().toString().trim();
            boolean isMobile=isMobile(name);

            if(name.isEmpty()|| pass.isEmpty()){

                Toast.makeText(this,"賬號密碼不能爲空",Toast.LENGTH_SHORT).show();

            }else{
                if(!isMobile){
                    Toast.makeText(this,"請輸入正確手機號",Toast.LENGTH_SHORT).show();
                }

             mUrl="http://www.xieast.com/api/user/login.php?username="+ name +"&password="+ pass;
             presenter.startRequse(mUrl,1);


            }
            break;
        case R.id.San_Deng_btn:
            UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener);

            break;
    }
}

@Override
public void success(Object data) {

    User user= (User) data;
    if(user.getCode()==100){
        if(rem_pw.isChecked()){
            mEditor.putString("USER_NAME", name);
            mEditor.putString("PASSWORD", pass);
            mEditor.commit();

        }

        Toast.makeText(this,user.getMsg(),Toast.LENGTH_SHORT).show();
  startActivity(new Intent(MainActivity.this,Main2Activity.class));
    }else{

        Toast.makeText(this,user.getMsg(),Toast.LENGTH_SHORT).show();
    }
}




@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

@Override
public void error(Object error) {


}
UMAuthListener authListener = new UMAuthListener() {
    /**
     * @desc 授權開始的回調
     * @param platform 平臺名稱
     */
    @Override
    public void onStart(SHARE_MEDIA platform) {

    }

    /**
     * @desc 授權成功的回調
     * @param platform 平臺名稱
     * @param action 行爲序號,開發者用不上
     * @param data 用戶資料返回
     */
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

        Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();

    }

    /**
     * @desc 授權失敗的回調
     * @param platform 平臺名稱
     * @param action 行爲序號,開發者用不上
     * @param t 錯誤原因
     */
    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {

        Toast.makeText(MainActivity.this, "失敗:" + t.getMessage(),                                     Toast.LENGTH_LONG).show();
    }

    /**
     * @desc 授權取消的回調
     * @param platform 平臺名稱
     * @param action 行爲序號,開發者用不上
     */
    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {
        Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
    }
};

}

//fargment 頁面 activty
package com.example.erzhoukaomoni;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioGroup;

import com.example.erzhoukaomoni.adapter.MyFragmentAdapter;
import com.example.erzhoukaomoni.fragment.AFragment;
import com.example.erzhoukaomoni.fragment.BFragment;

import java.util.ArrayList;

public class Main2Activity extends AppCompatActivity {

private RadioGroup Rg;
private ViewPager Vp;
private AFragment aFragment;
private BFragment bFragment;
private ArrayList<Fragment> mList;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    initData();
    initView();
    MyFragmentAdapter myFragmentAdapter=new MyFragmentAdapter(getSupportFragmentManager(),mList,mContext);
    Vp.setAdapter(myFragmentAdapter);
    Rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if(R.id.Rb1==checkedId){
                Vp.setCurrentItem(0);
            }else if(R.id.Rb2==checkedId){
                Vp.setCurrentItem(1);
            }
        }
    });

    Vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {

        }

        @Override
        public void onPageSelected(int i) {

            if(i==0){
           Rg.check(R.id.Rb1);
            }else if(i==1){
                Rg.check(R.id.Rb2);
            }
        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }
    });

}

private void initView() {
    Rg = (RadioGroup) findViewById(R.id.Rg);
    Vp = (ViewPager) findViewById(R.id.Vp);
}
public void initData() {
     mList=new ArrayList<>();
     mList.add(new AFragment());
    mList.add(new BFragment());

}

}

//webview展示
package com.example.erzhoukaomoni;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class Main3Activity extends AppCompatActivity {

private WebView Web_View;
private String zzz;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main3);
    Web_View = (WebView) findViewById(R.id.Web_View);

    Intent intent = getIntent();
    zzz = intent.getStringExtra("zzz");
    Toast.makeText(Main3Activity.this,zzz,Toast.LENGTH_SHORT).show();
    Web_View.loadUrl(zzz);
    Web_View.setWebViewClient(new WebViewClient());
    WebSettings settings = Web_View.getSettings();
    settings.setJavaScriptCanOpenWindowsAutomatically(true);
    settings.setJavaScriptEnabled(true);
}

}

//fragment頁面

//A頁面
package com.example.erzhoukaomoni.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.AdapterView;

import com.example.erzhoukaomoni.Main3Activity;
import com.example.erzhoukaomoni.R;
import com.example.erzhoukaomoni.adapter.MyAdapter;
import com.example.erzhoukaomoni.bean.MyData;
import com.example.erzhoukaomoni.presenter.PresenterImpl;
import com.example.erzhoukaomoni.view.Iview;
import com.example.xlistviewlibrary.XListView;

import java.util.ArrayList;

/**

  • A simple {@link Fragment} subclass.
    */
    public class AFragment extends Fragment implements Iview, XListView.IXListViewListener {

    private String mUrl = “http://www.xieast.com/api/news/news.php?page=”;
    private XListView XList_View;
    private int mindex=1;

    private ArrayList<MyData.DataBean> mList=new ArrayList<>();
    private PresenterImpl presenter;
    private MyAdapter myAdapter;
    private WebView webView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_a, null);
    initView(v);
    presenter=new PresenterImpl(this);
    myAdapter=new MyAdapter(mList,getContext());
    XList_View.setAdapter(myAdapter);
    presenter.startRequse(mUrl+mindex,2);

     XList_View.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
             //Toast.makeText(getActivity(),mList.get(position).getUrl(),Toast.LENGTH_SHORT).show();
             Intent intent=new Intent(getActivity(),Main3Activity.class);
             intent.putExtra("zzz",mList.get(position).getUrl());
             startActivity(intent);
    
         }
     });
    
     return v;
    

    }

    private void initView(View v) {
    XList_View = (XListView) v.findViewById(R.id.XList_View);
    webView = (WebView) v.findViewById(R.id.Web_View);
    XList_View.setXListViewListener(this);
    XList_View.setPullLoadEnable(true);
    }

    @Override
    public void success(Object data) {

     MyData myData= (MyData) data;
     mList.addAll(myData.getData());
     myAdapter.notifyDataSetChanged();
     stopReflush();
    

    }
    public void stopReflush(){
    XList_View.stopLoadMore();
    XList_View.stopRefresh();
    XList_View.setRefreshTime(“加載完成”);

    }

    @Override
    public void error(Object error) {

    }

    @Override
    public void onRefresh() {

     mindex=1;
     mList.clear();
     presenter.startRequse(mUrl+mindex,2);
    

    }

    @Override
    public void onLoadMore() {

     mindex++;
     presenter.startRequse(mUrl+mindex,2);
    

    }

}

//B頁面

package com.example.erzhoukaomoni.fragment;

import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.content.PermissionChecker;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.erzhoukaomoni.MainActivity;
import com.example.erzhoukaomoni.R;
import com.google.zxing.WriterException;
import com.yzq.zxinglibrary.android.CaptureActivity;
import com.yzq.zxinglibrary.common.Constant;
import com.yzq.zxinglibrary.encode.CodeCreator;

import static android.app.Activity.RESULT_OK;

/**

  • A simple {@link Fragment} subclass.
    */
    public class BFragment extends Fragment implements View.OnClickListener{

private Button Sao_Yi_Sao;
private Button Sheng_Btn;
private ImageView Image;
private Button result;
private final int REQUEST_CODE_SCAN = 1001;
private String contentEtString = “呂小帥”;
private TextView text_view;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {


    View v = inflater.inflate(R.layout.fragment_b, null);
    initView(v);





    return v;

}

private void initView(View v) {
Sao_Yi_Sao = (Button) v.findViewById(R.id.Sao_Yi_Sao);
Sheng_Btn = (Button) v.findViewById(R.id.Sheng_Btn);
Image = (ImageView) v.findViewById(R.id.Image);
text_view = v.findViewById(R.id.Text_View);
result = (Button) v.findViewById(R.id.result);

    Sao_Yi_Sao.setOnClickListener(this);
    Sheng_Btn.setOnClickListener(this);
    result.setOnClickListener(this);


}


@Override

public void onClick(View v) {

    switch (v.getId()){
        case R.id.Sao_Yi_Sao:
            if (!initPermission()) {
                new AlertDialog.Builder(getContext())
                        .setMessage("沒有開啓攝像機權限,是否去設置開啓?")
                        .setPositiveButton("去開啓", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                //調用系統內部去開啓權限
                                ApplicationInfo(getActivity());
                            }
                        })
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                            }
                        }).show();
                return;
            }
            //跳到掃一掃頁面
            Intent intent = new Intent(getContext(), CaptureActivity.class);



            //ZxingConfig config = new ZxingConfig();
            //config.setShowbottomLayout(true);//底部佈局(包括閃光燈和相冊)
            //config.setPlayBeep(true);//是否播放提示音
            //config.setShake(true);//是否震動
            //config.setShowAlbum(true);//是否顯示相冊
            //config.setShowFlashLight(true);//是否顯示閃光燈
            //intent.putExtra(Constant.INTENT_ZXING_CONFIG, config);
            startActivityForResult(intent, REQUEST_CODE_SCAN);
            break;
        case R.id.Sheng_Btn:
            Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
            try {
                //生成二維碼需要用到類是CodeCreator
                Bitmap bitmap = CodeCreator.createQRCode(contentEtString, 400, 400, logo);
                Image.setImageBitmap(bitmap);
            } catch (WriterException e) {
                e.printStackTrace();
            }
            break;
        case R.id.result:

          Intent mIntent1=new Intent(getContext(),MainActivity.class);
          startActivity(mIntent1);

            break;

    }

}

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

    // 掃描二維碼/條碼回傳
    if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {
        if (data != null) {
            //key值都約束好了
            String content = data.getStringExtra(Constant.CODED_CONTENT);
            text_view.setText("掃描結果爲:" + content);
        }
    }
}

//查看是否開啓攝像頭權限

private boolean initPermission() {
    //需要在Android裏面找到你要開的權限
    String permissions = Manifest.permission.CAMERA;
    boolean ret = false;
    //Android 6.0以上纔有動態權限
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//permission granted 說明權限開了
        ret = PermissionChecker.checkSelfPermission(getContext(), permissions) == PermissionChecker.PERMISSION_GRANTED;
    }
    return ret;
}


public static void ApplicationInfo(Activity activity) {

    try {
        Intent localIntent = new Intent();
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (Build.VERSION.SDK_INT >= 9) {
            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
            localIntent.setData(Uri.fromParts("package", activity.getPackageName(), null));
        } else if (Build.VERSION.SDK_INT <= 8) {
            localIntent.setAction(Intent.ACTION_VIEW);
            localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
            localIntent.putExtra("com.android.settings.ApplicationPkgName", activity.getPackageName());
        }
        activity.startActivity(localIntent);
    } catch (Exception e) {

    }

}

}

//view層
package com.example.erzhoukaomoni.view;

public interface Iview {
void success(T data);
void error(T error);
}

//Model層
package com.example.erzhoukaomoni.model;

import com.example.erzhoukaomoni.callback.MyCallBack;

public interface Model {

void getData(String url, int type, MyCallBack callBack);

}
//ModelImpl層

package com.example.erzhoukaomoni.model;

import android.os.AsyncTask;

import com.example.erzhoukaomoni.bean.MyData;
import com.example.erzhoukaomoni.bean.User;
import com.example.erzhoukaomoni.callback.MyCallBack;
import com.example.erzhoukaomoni.utils.HttpUtils;
import com.google.gson.Gson;

public class ModelImpl implements Model {

private MyCallBack callBack;
private int type;

@Override
public void getData(String url, int type, MyCallBack callBack) {
    this.callBack=callBack;
    this.type=type;
    new MyTask<T>().execute(url);
}


class MyTask<T> extends AsyncTask<String,Void,T>{

 @Override
 protected T doInBackground(String... strings) {

     try {
         String jsonStr = HttpUtils.get(strings[0]);
         Gson gson=new Gson();
         if(type==1){
             User user = gson.fromJson(jsonStr, User.class);
             return (T) user;
         }else if(type==2){
             MyData myData = gson.fromJson(jsonStr, MyData.class);
             return (T) myData;
         }

     } catch (Exception e) {
         e.printStackTrace();
         callBack.setError(e.getMessage()+"出現異常");
     }
     return null;
 }

 @Override
 protected void onPostExecute(T t) {
     super.onPostExecute(t);
     callBack.setData(t);
 }

}
}

//MyCallBack層
package com.example.erzhoukaomoni.callback;

public interface MyCallBack {
void setData(T user);
void setError(T error);
}

//IPresenter層
package com.example.erzhoukaomoni.presenter;

public interface IPresenter {

void startRequse(String url, int type);

}

//PresenterImpl層
package com.example.erzhoukaomoni.presenter;

import com.example.erzhoukaomoni.callback.MyCallBack;
import com.example.erzhoukaomoni.model.ModelImpl;
import com.example.erzhoukaomoni.view.Iview;

public class PresenterImpl implements IPresenter {

private ModelImpl model;
private Iview iview;

public PresenterImpl(Iview iview) {
    this.iview = iview;
    model=new ModelImpl();
}

@Override
public void startRequse(String url, int type) {

  model.getData(url, type, new MyCallBack() {
      @Override
      public void setData(Object user) {
          iview.success(user);
      }

      @Override
      public void setError(Object error) {
  iview.error(error);
      }
  });

}

public void onDetatch(){
    if(model!=null){
        model=null;

if(iview!=null){
iview=null;
} }

}

}

//HttpUtils層
package com.example.erzhoukaomoni.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUtils {

public static String get(String urlStr) throws Exception {
    URL url = new URL(urlStr);
    //由一個有效的網址服務返回這個對象
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    //設置請求方式
    connection.setRequestMethod("GET");
    connection.setConnectTimeout(5000);
    InputStream stream = connection.getInputStream();
    String inputStr = getInputStr(stream);
    return inputStr;
}

//把流轉成字符串
private static String getInputStr(InputStream stream) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(stream));
    StringBuffer sb = new StringBuffer();
    String str = null;
    while ((str = br.readLine()) != null) {
        sb.append(str);
    }
    return sb.toString();
}

public static String post(String urlStr, String mobile, String pass) throws Exception {
    String inputStr = "";
    URL url = new URL(urlStr);
    //由一個有效的網址服務返回這個對象
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    //設置請求方式
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setConnectTimeout(5000);
    OutputStream outputStream = connection.getOutputStream();
    String params = "mobile=" + mobile + "&password=" + pass;
    outputStream.write(params.getBytes());
    if (connection.getResponseCode() == 200) {
        InputStream stream = connection.getInputStream();
        inputStr = getInputStr(stream);
    }

    return inputStr;
}

}

//Myapp
package com.example.erzhoukaomoni.app;

import android.app.Application;

import com.umeng.commonsdk.UMConfigure;
import com.umeng.socialize.PlatformConfig;

public class Myapp extends Application {
@Override
public void onCreate() {
super.onCreate();
UMConfigure.setLogEnabled(true);
UMConfigure.init(this, “5a12384aa40fa3551f0001d1”
, “umeng”, UMConfigure.DEVICE_TYPE_PHONE, “”);//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
//開啓log打印 報錯會給你提示

    PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");

}

}

//Adapter層
package com.example.erzhoukaomoni.adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

public class MyFragmentAdapter extends FragmentPagerAdapter {

 private ArrayList<Fragment> mList;
 private Context mContext;

public MyFragmentAdapter(FragmentManager fm, ArrayList<Fragment> mList, Context mContext) {
    super(fm);
    this.mList = mList;
    this.mContext = mContext;
}

@Override
public Fragment getItem(int i) {
    return mList.get(i);
}

@Override
public int getCount() {
    return mList.size();
}

}

//MyAdapter層
package com.example.erzhoukaomoni.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.erzhoukaomoni.R;
import com.example.erzhoukaomoni.bean.MyData;

import java.util.ArrayList;

public class MyAdapter extends BaseAdapter {
private ArrayList<MyData.DataBean> mList;
private Context mContext;

public MyAdapter(ArrayList<MyData.DataBean> mList, Context mContext) {
    this.mList = mList;
    this.mContext = mContext;
}

@Override
public int getCount() {
    return mList.size();
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder=null;
    if(convertView==null){

        convertView=View.inflate(mContext, R.layout.list_item,null);
        holder=new ViewHolder();
        holder.Img=convertView.findViewById(R.id.Img);
        holder.Text_View=convertView.findViewById(R.id.Text_View);
        convertView.setTag(holder);
    }else{
        holder= (ViewHolder) convertView.getTag();

    }
    Glide.with(mContext).load(mList.get(position).getThumbnail_pic_s()).into(holder.Img);
    holder.Text_View.setText(mList.get(position).getTitle());

    return convertView;
}

class ViewHolder{

    ImageView Img;
    TextView Text_View;

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章