MainActivity
public class MainActivity extends BaseActivity implements IView, View.OnClickListener {
private EditText mobile;
private EditText pwd;
private CheckBox remmber;
private CheckBox autologin;
private Button login_btn;
private Button three_login;
private ImageView q_image;
private SharedPreferences.Editor edit;
private String url = "http://www.xieast.com/api/user/login.php";
private Presenter presenter;
private String name;
private String pass;
private SharedPreferences sp;
@Override
protected int getLayout() {
return R.layout.activity_main;
}
@Override
protected void initView() {
login_btn = findViewById(R.id.login_btn);
mobile = findViewById(R.id.mobile);
pwd = findViewById(R.id.pwd);
remmber = findViewById(R.id.remmber);
autologin = findViewById(R.id.autologin);
three_login=findViewById(R.id.three_login);
q_image=findViewById(R.id.Q_image);
}
@Override
public void setOnclick() {
login_btn.setOnClickListener(this);
autologin.setOnClickListener(this);
remmber.setOnClickListener(this);
three_login.setOnClickListener(this);
}
@Override
protected void processLogic() {
presenter = new Presenter(this);
sp = getSharedPreferences("wwd",MODE_PRIVATE);
edit = sp.edit();
panduandenglu();
}
private void panduandenglu() {
if(sp.getBoolean("rem",false)){
remmber.setChecked(true);
mobile.setText(sp.getString("mobile",""));
pwd.setText(sp.getString("pwd",""));
}
if(sp.getBoolean("rem",false )&& sp.getBoolean("auto",false)){
autologin.setChecked(true);
remmber.setChecked(true);
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
}
@Override
public void showData(Object data) {
User data1 = (User) data;
if (data1.getCode() == 100) {
edit.putString("phone", data1.getData().getMobile() + "");
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.login_btn:
name = mobile.getText().toString().trim();
pass = pwd.getText().toString().trim();
if(name.isEmpty()|| pass.isEmpty()){
Toast.makeText(this, "账号或密码不能为空", Toast.LENGTH_SHORT).show();
}
else{
presenter.getData(url,name,pass);
}
case R.id.remmber:
String name1 = mobile.getText().toString().trim();
String pass1= pwd.getText().toString().trim();
if (name1.isEmpty() || pass1.isEmpty()) {
Toast.makeText(this, "账号或密码不能为空", Toast.LENGTH_SHORT).show();
remmber.setChecked(false);
} else {
}
panduan();
break;
case R.id.autologin:
String name2 = mobile.getText().toString().trim();
String pass2= pwd.getText().toString().trim();
if(name2.isEmpty()||pass2.isEmpty()){
Toast.makeText(this, "账号或密码不能为空", Toast.LENGTH_SHORT).show();
autologin.setChecked(false);
}
else{
if(autologin.isChecked()){
remmber.setChecked(true);
}
else{
remmber.setChecked(false);
}
}
panduan();
break;
case R.id.three_login:
UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.QQ, authListener);
break;
}
}
public void panduan(){
if(remmber.isChecked()&& autologin.isChecked()){
edit.putBoolean("rem",true);
edit.putBoolean("auto",true);
edit.putString("mobile",mobile.getText().toString());
edit.putString("pwd",pwd.getText().toString());
edit.commit();
}
else if(remmber.isChecked()&&! autologin.isChecked()){
edit.putBoolean("rem",true);
edit.putString("Mobile", mobile.getText().toString());
edit.putString("pwd", pwd.getText().toString());
edit.commit();
}
}
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) {
String img=data.get("iconurl");
Picasso.get().load(img).into(q_image);
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();
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
}
0mainfest
<?xml version="1.0" encoding="utf-8"?><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:name=".Application"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity" />
<activity android:name=".Threeavtivity"></activity>
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100424468" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"/>
<meta-data android:name="UMENG-APPKEY" android:value="5c090d8df1f556955700028c"></meta-data>
</application>
MyCallBack package com.example.wwwweek2.callback;
public interface MyCallBack {
void getData(T data);
}
model
public interface Model {
void getData(String url, String mobile, String pwd, MyCallBack callBack);
modelLimpl
public class ModelImpl implements Model{
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0:
String str1 = (String) msg.obj;
Gson g=new Gson();
User user = g.fromJson(str1, User.class);
callBack.getData(user);
break;
case 1:
String str2 = (String) msg.obj;
Gson g1=new Gson();
Data data = g1.fromJson(str2, Data.class);
callBack.getData(data);
break;
}
}
};
private MyCallBack callBack;
@Override
public void getData(final String url, final String mobile, final String pwd, final MyCallBack callBack) {
this.callBack=callBack;
new Thread(new Runnable() {
@Override
public void run() {
if(mobile.equals("json")) {
String s = HttpUtils.get(url);
handler.sendMessage(handler.obtainMessage(1,s));
}
else{
String s = HttpUtils.post(url, mobile, pwd);
handler.sendMessage(handler.obtainMessage(0,s));
}
} catch (Exception e) {
}
}
}).start();
}
present
public interface pre {
void getData(String url, String mobile, String pwd);
}
presentimpl
public Presenter(IView iView) {
this.iView = iView;
model=new ModelImpl();
}
@Override
public void getData(String url, String mobile, String pwd) {
model.getData(url, mobile, pwd, new MyCallBack() {
@Override
public void getData(Object data) {
iView.showData(data);
}
});
}
ivew
public interface IView {
void showData(T data);
}
base
package com.example.wwwweek2;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
//获取布局
protected abstract int getLayout();
//查找控件
protected abstract void initView();
//点击事件
public abstract void setOnclick();
//具体操作
protected abstract void processLogic();
void init(){
if(getLayout()!=0){
setContentView(getLayout());
initView();
setOnclick();
processLogic();
}
};
}
http请求网络
package com.example.wwwweek2.Util;
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 username, String password) throws Exception {
String inputStr = “”;
URL url = new URL(urlStr+"?username="+username+"&password="+password);
//由一个有效的网址服务返回这个对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求方式
connection.setRequestMethod(“GET”);
connection.setConnectTimeout(5000);InputStream stream = connection.getInputStream(); inputStr = getInputStr(stream); return inputStr;
}
}
viewpager+radiogroup
public class Main2Activity extends BaseActivity {
private ViewPager frag_pager;
private RadioButton rb1;
private RadioButton rb2;
private RadioGroup rg;
private List<Fragment> list=new ArrayList<>();
@Override
protected int getLayout() {
return R.layout.activity_main2;
}
@Override
protected void initView() {
initData();
frag_pager=findViewById(R.id.frag_pager);
rg=findViewById(R.id.rg);
rb1=findViewById(R.id.rb1);
rb2=findViewById(R.id.rb2);
Pageadapter pageadapter=new Pageadapter(getSupportFragmentManager(),list);
frag_pager.setAdapter(pageadapter);
frag_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
if (i==0){
rb1.setChecked(true);
}
else if(i==1){
rb2.setChecked(true);
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId==R.id.rb1){
frag_pager.setCurrentItem(0);
}
else {
frag_pager.setCurrentItem(1);
}
}
});
}
private void initData() {
list.add(new Afragment());
list.add(new Bfragment());
}
@Override
public void setOnclick() {
}
@Override
protected void processLogic() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) and run LayoutCreator again
}
}
webview+第三方分享
package com.example.wwwweek2;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
public class Threeavtivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_threeavtivity);
initView();
Intent intent=getIntent();
url = intent.getStringExtra("url");
WebSettings webSettings=web.getSettings();
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setJavaScriptEnabled(true);
web.setWebViewClient(new WebViewClient());
web.setWebChromeClient(new WebChromeClient());
web.loadUrl(url);
}
private void initView() {
fenxiang = (Button) findViewById(R.id.fenxiang);
web = (WebView) findViewById(R.id.web);
fenxiang.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fenxiang:
UMImage image = new UMImage(Threeavtivity.this, R.drawable.umeng_socialize_qq);
new ShareAction(Threeavtivity.this)
.withText(url)
.setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
.setCallback(shareListener).open();
break;
}
}
private UMShareListener shareListener = new UMShareListener() {
/**
* @descrption 分享开始的回调
* @param platform 平台类型
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @descrption 分享成功的回调
* @param platform 平台类型
*/
@Override
public void onResult(SHARE_MEDIA platform) {
Toast.makeText(Threeavtivity.this,"成功了",Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享失败的回调
* @param platform 平台类型
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(Threeavtivity.this,"失 败"+t.getMessage(),Toast.LENGTH_LONG).show();
}
/**
* @descrption 分享取消的回调
* @param platform 平台类型
*/
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(Threeavtivity.this,"取消了",Toast.LENGTH_LONG).show();
}
};
}
Xlistview
public class Afragment extends Fragment implements IView{
private String url=“http://www.xieast.com/api/news/news.php”;
private XListView xListView;
private List<Data.DataBean> list=new ArrayList<>();
private MyAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.afragment,null);
initView(view);
initprocess();
return view;
}
private void initprocess() {
Presenter presenter=new Presenter(this);
presenter.getData(url,"json",null);
}
private void initView(View view) {
xListView = view.findViewById(R.id.xxlistview);
xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String url = list.get(position).getUrl();
Intent intent=new Intent(getActivity(),Threeavtivity.class);
intent.putExtra("url",url);
startActivity(intent);
}
});
}
@Override
public void showData(Object data) {
Data d=(Data) data;
List<Data.DataBean> dataa = d.getData();
list.clear();
list.addAll(dataa);
adapter = new MyAdapter(list,getContext());
xListView.setAdapter(adapter);
}
}
二维码啦啦啦
public class Bfragment extends Fragment implements View.OnClickListener{
private ImageView erweima;
private Button t_login;
private SharedPreferences sp;
private SharedPreferences.Editor edit;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.bfragment,null);
sp = getActivity().getSharedPreferences("wwd",Context.MODE_PRIVATE);
edit = sp.edit();
initView(view);
Bitmap logo=BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
try {
Bitmap bitmap=CodeCreator.createQRCode(sp.getString("phone","信息没传过来"),400,400,logo);
erweima.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
return view;
}
private void initView(View view) {
erweima = (ImageView) view.findViewById(R.id.erweima);
t_login = (Button) view.findViewById(R.id.t_login);
t_login.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.t_login:
edit.clear();
edit.commit();
break;
}
}
}
MyAdapter
public class MyAdapter extends BaseAdapter {
private List<Data.DataBean> list;
private Context context;
public MyAdapter(List<Data.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.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){
holder=new ViewHolder();
convertView=View.inflate(context,R.layout.xlist_item,null);
holder.tvtext=convertView.findViewById(R.id.tvtext);
holder.img1=convertView.findViewById(R.id.img1);
holder.img2=convertView.findViewById(R.id.img2);
holder.img3=convertView.findViewById(R.id.img3);
convertView.setTag(holder);
}
else{
holder= (ViewHolder) convertView.getTag();
}
holder.tvtext.setText(list.get(position).getTitle());
Glide.with(context).load(list.get(position).getThumbnail_pic_s()).into(holder.img1);
Glide.with(context).load(list.get(position).getThumbnail_pic_s02()).into(holder.img2);
Glide.with(context).load(list.get(position).getThumbnail_pic_s03()).into(holder.img3);
return convertView;
}
class ViewHolder{
TextView tvtext;
ImageView img1;
ImageView img2;
ImageView img3;
}
}
pageadapter
public class Pageadapter extends FragmentPagerAdapter{
private List list;
public Pageadapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list = list;
}
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
}