效果图
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bawei.yuekao_2">
<!-- 个推3.0电子围栏功能所需权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<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.ACCESS_NETWORK_STATE"/>
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:name=".wight.MyApp"
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=".wight.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</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:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="UMENG_APPKEY"
android:value="5c07d385f1f556e5f90003c4" />
<activity
android:name=".wight.Main2Activity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar" />
</application>
</manifest>
布局MainActivity
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout tools:context=".wight.MainActivity"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="QQ登录"
android:id="@+id/qqlogin"/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="QQ分享"
android:id="@+id/qqshare"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
//高德地图
<com.amap.api.maps.MapView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/map">
</com.amap.api.maps.MapView>
</LinearLayout>
</LinearLayout>
主布局Main2Activity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Main2Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7">
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/xRecyclerView">
</com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="@+id/quan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="全选" />
<TextView
android:id="@+id/text_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:textColor="#00f"
android:textSize="20sp"
android:text="合计:"/>
<Button
android:id="@+id/jisuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="150dp"
android:text="结算" />
</LinearLayout>
</LinearLayout>
item1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/checkbox_1"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<TextView
android:id="@+id/text_1"
android:layout_width="match_parent"
android:text="6666666"
android:layout_height="wrap_content" />
</LinearLayout>
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/xRecyclerView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="30dp">
</com.jcodecraeer.xrecyclerview.XRecyclerView>
</LinearLayout>
item2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="10dp">
<CheckBox
android:id="@+id/checkbox_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
/>
</RelativeLayout>
<ImageView
android:id="@+id/image_id"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
android:padding="10dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/text_name"
android:layout_width="match_parent"
android:text="111"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<com.bawei.yuekao_2.wight.MyView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</com.bawei.yuekao_2.wight.MyView>
</LinearLayout>
</LinearLayout>
自定义my_view
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="50dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="100"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true">
<Button
android:id="@+id/ed_jian"
android:layout_width="40dp"
android:layout_height="40dp"
android:text="一"/>
<TextView
android:id="@+id/ed_num"
android:layout_width="80dp"
android:layout_height="40dp"
android:gravity="center"
android:text="0"/>
<Button
android:id="@+id/ed_jia"
android:text="+"
android:layout_width="40dp"
android:layout_height="40dp" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
adapter
package com.bawei.yuekao_2.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bawei.yuekao_2.R;
import com.bawei.yuekao_2.bean.Bean;
import com.bawei.yuekao_2.wight.MainActivity;
import com.bumptech.glide.Glide;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.List;
public class Adatper extends XRecyclerView.Adapter<Adatper.MyVholder> {
Context context;
List<Bean.DataBean> data;
private int sum;
private boolean ischeck;
private int toprice=0;
TextView text_money;
public Adatper(Context context, List<Bean.DataBean> data, int i, boolean ischeck) {
this.context = context;
this.data = data;
this.sum = i;
}
@NonNull
@Override
public MyVholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(context).inflate(R.layout.item2, null, false);
return new MyVholder(inflate);
}
@Override
public void onBindViewHolder(@NonNull final MyVholder myVholder, final int i) {
myVholder.textView.setText(data.get(sum).getDatas().get(i).getType_name());
Glide.with(context).load("http://172.17.8.100/images/small/commodity/sjsm/znsb/1/1.jpg").into(myVholder.imageView);
//设置父级选中,子级全部选中/ 用title_id来判断是否选中
String title_id = data.get(sum).getTitle_id();
if (title_id.equals("1")){
myVholder.box.setChecked(true);
}else {
myVholder.box.setChecked(false);
}
/* //子级box改变的的监听
myVholder.box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
String string = myVholder.price.getText().toString();
int price = Integer.parseInt(string);
toprice+=price;
}else {
String string = myVholder.price.getText().toString();
}
//text_money.setText(toprice+"");
}
});*/
//加
myVholder.jia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = myVholder.ed_num.getText().toString();
int ed_num = Integer.parseInt(string);
ed_num++;
int price = data.get(sum).getDatas().get(i).getPrice();
int sum = price * ed_num;
myVholder.price.setText(sum+"");
myVholder.ed_num.setText(ed_num+"");
}
});
//减
myVholder.jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = myVholder.ed_num.getText().toString();
int ed_num= Integer.parseInt(string);
if (ed_num>0){
ed_num--;
myVholder.ed_num.setText(ed_num+"");
int price = data.get(sum).getDatas().get(i).getPrice();
int sum = price * ed_num;
myVholder.price.setText(sum+"");
}else {
Toast.makeText(context,"不能小于零",Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public int getItemCount() {
return data.get(sum).getDatas().size();
}
public static class MyVholder extends XRecyclerView.ViewHolder {
ImageView imageView ;
TextView textView,ed_num;
CheckBox box;
TextView jia,jian,price;
public MyVholder(@NonNull View itemView) {
super(itemView);
ed_num = itemView.findViewById(R.id.ed_num);
jia = itemView.findViewById(R.id.ed_jia);
jian = itemView.findViewById(R.id.ed_jian);
price = itemView.findViewById(R.id.price);
imageView = itemView.findViewById(R.id.image_id);
textView = itemView.findViewById(R.id.text_name);
box = itemView.findViewById(R.id.checkbox_2);
}
}
}
package com.bawei.yuekao_2.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import com.bawei.yuekao_2.R;
import com.bawei.yuekao_2.bean.Bean;
import com.bawei.yuekao_2.wight.MainActivity;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.List;
public class MyAdapter extends XRecyclerView.Adapter<MyAdapter.MyVholder1> {
private Context context;
private List<Bean.DataBean> data;
private boolean ischeck=false;
private boolean fie=false;
TextView text_money;
Button quan;
public MyAdapter(Main2Activity main2Activity, List<Bean.DataBean> data, Button quan) {
this.context = main2Activity;
this.quan=quan;
this.data = data;
}
@NonNull
@Override
public MyVholder1 onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View inflate = LayoutInflater.from(context).inflate(R.layout.item1, null, false);
return new MyVholder1(inflate);
}
@Override
public void onBindViewHolder(@NonNull final MyVholder1 myVholder1, final int i) {
//二级适配器
final Adatper adatper = new Adatper(context,data,i,ischeck);
myVholder1.xRecyclerView.setLayoutManager(new LinearLayoutManager(context));
myVholder1.xRecyclerView.setAdapter(adatper);
myVholder1.textView.setText(data.get(i).getTitle());
quan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (fie){
fie=false;
notifyDataSetChanged();
}else {
fie=true;
notifyDataSetChanged();
}
}
});
if (fie){
myVholder1.box.setChecked(true);
}else {
myVholder1.box.setChecked(false);
}
myVholder1.box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
data.get(i).setTitle_id(1+"");
adatper.notifyDataSetChanged();
}else {
data.get(i).setTitle_id(0+"");
adatper.notifyDataSetChanged();
}
}
});
}
@Override
public int getItemCount() {
return data.size();
}
public class MyVholder1 extends XRecyclerView.ViewHolder {
TextView textView;
XRecyclerView xRecyclerView;
CheckBox box;
public MyVholder1(@NonNull View itemView) {
super(itemView);
box = itemView.findViewById(R.id.checkbox_1);
textView = itemView.findViewById(R.id.text_1);
xRecyclerView = itemView.findViewById(R.id.xRecyclerView2);
}
}
}
package com.bawei.yuekao_2.adapter;
public interface Util {
void checked(int i);
}
bean
package com.bawei.yuekao_2.bean;
import java.util.List;
public class Bean {
/**
* code : 200
* data : [{"datas":[{"add_time":"2016-12-10 14:54:58","cart_id":"445162","house_id":"1","msg":"购买渠道:大陆国行","price":500,"type_name":"苹果 iPhone 6(白金色)","type_sn_id":"ggh"},{"add_time":"2016-12-10 14:55:18","cart_id":"445163","house_id":"1","msg":"购买渠道:水货无锁","price":1000,"type_name":"苹果 iPhone 7 (亮黑色)","type_sn_id":"tgg"}],"title":"苹果","title_id":"59280"},{"datas":[{"add_time":"2016-12-10 14:54:58","cart_id":"445162","house_id":"1","msg":"边框背板:全新未使用","price":50,"type_name":"小米4s (白金色)","type_sn_id":"ggh"},{"add_time":"2016-12-10 14:55:18","cart_id":"445163","house_id":"1","msg":"屏幕性能:色差/亮点/轻微发黄","price":100,"type_name":"小米5s (亮黑色)","type_sn_id":"tgg"}],"title":"小米","title_id":"59279"},{"datas":[{"add_time":"2016-12-10 14:54:58","cart_id":"445162","house_id":"1","msg":"边框背板:全新未使用","price":50,"type_name":"三星 (白金色)","type_sn_id":"ggh"},{"add_time":"2016-12-10 14:55:18","cart_id":"445163","house_id":"1","msg":"屏幕性能:色差/亮点/轻微发黄","price":100,"type_name":"三星 (亮黑色)","type_sn_id":"tgg"}],"title":"三星","title_id":"59279"},{"datas":[{"add_time":"2016-12-10 14:54:58","cart_id":"445162","house_id":"1","msg":"边框背板:全新未使用","price":50,"type_name":"华为 (白金色)","type_sn_id":"ggh"},{"add_time":"2016-12-10 14:55:18","cart_id":"445163","house_id":"1","msg":"屏幕性能:色差/亮点/轻微发黄","price":100,"type_name":"华为 (亮黑色)","type_sn_id":"tgg"},{"add_time":"2016-12-10 4:55:28","cart_id":"445164","house_id":"1","msg":"屏幕性能:色差/亮点/轻微发黄","price":150,"type_name":"华为 (纯黑色)","type_sn_id":"hgg"}],"title":"华为","title_id":"59279"}]
* flag : Success
* msg : 描述
*/
private String code;
private String flag;
private String msg;
private List<DataBean> data;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
/**
* datas : [{"add_time":"2016-12-10 14:54:58","cart_id":"445162","house_id":"1","msg":"购买渠道:大陆国行","price":500,"type_name":"苹果 iPhone 6(白金色)","type_sn_id":"ggh"},{"add_time":"2016-12-10 14:55:18","cart_id":"445163","house_id":"1","msg":"购买渠道:水货无锁","price":1000,"type_name":"苹果 iPhone 7 (亮黑色)","type_sn_id":"tgg"}]
* title : 苹果
* title_id : 59280
*/
private String title;
private String title_id;
private List<DatasBean> datas;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTitle_id() {
return title_id;
}
public void setTitle_id(String title_id) {
this.title_id = title_id;
}
public List<DatasBean> getDatas() {
return datas;
}
public void setDatas(List<DatasBean> datas) {
this.datas = datas;
}
public static class DatasBean {
/**
* add_time : 2016-12-10 14:54:58
* cart_id : 445162
* house_id : 1
* msg : 购买渠道:大陆国行
* price : 500
* type_name : 苹果 iPhone 6(白金色)
* type_sn_id : ggh
*/
private String add_time;
private String cart_id;
private String house_id;
private String msg;
private int price;
private String type_name;
private String type_sn_id;
public String getAdd_time() {
return add_time;
}
public void setAdd_time(String add_time) {
this.add_time = add_time;
}
public String getCart_id() {
return cart_id;
}
public void setCart_id(String cart_id) {
this.cart_id = cart_id;
}
public String getHouse_id() {
return house_id;
}
public void setHouse_id(String house_id) {
this.house_id = house_id;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getType_name() {
return type_name;
}
public void setType_name(String type_name) {
this.type_name = type_name;
}
public String getType_sn_id() {
return type_sn_id;
}
public void setType_sn_id(String type_sn_id) {
this.type_sn_id = type_sn_id;
}
}
}
}
model
package com.bawei.yuekao_2.model;
import com.bawei.yuekao_2.utils.OkHttp;
public class IModel implements ModelInter{
@Override
public void getData(String url, final ModelCallBack modelCallBack) {
OkHttp.getInstaner().dopost(url, new OkHttp.OkHttpCallBack() {
@Override
public void onSuccess(String result) {
modelCallBack.onSuccess(result);
}
@Override
public void onFiled(String msg) {
}
});
}
public interface ModelCallBack{
//成功
void onSuccess(String result);
//失败
void onFiled(String msg);
}
}
package com.bawei.yuekao_2.model;
public interface ModelInter {
void getData(String url, IModel.ModelCallBack modelCallBack);
}
presenter
package com.bawei.yuekao_2.presenter;
import com.bawei.yuekao_2.model.IModel;
import com.bawei.yuekao_2.wight.ViewInter;
public class IPresenter implements PresenterInter{
IModel iModel;
ViewInter viewInter;
public IPresenter(ViewInter viewInter) {
this.viewInter = viewInter;
iModel = new IModel();
}
@Override
public void getData(String url) {
iModel.getData(url, new IModel.ModelCallBack() {
@Override
public void onSuccess(String result) {
viewInter.onSuccess(result);
}
@Override
public void onFiled(String msg) {
}
});
}
}
package com.bawei.yuekao_2.presenter;
public interface PresenterInter {
void getData(String url);
}
utils
package com.bawei.yuekao_2.utils;
import android.os.Handler;
import android.widget.LinearLayout;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
public class OkHttp {
private static OkHttp okHttp;
OkHttpClient okHttpClient;
Handler handler = new Handler();
public static OkHttp getInstaner(){
if (okHttp == null){
synchronized (OkHttp.class){
if (okHttp == null){
okHttp = new OkHttp();
}
}
}
return okHttp;
}
//拦截器(日志)
private OkHttp(){
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClient = new OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.readTimeout(5,TimeUnit.SECONDS)
.writeTimeout(5,TimeUnit.SECONDS)
.connectTimeout(5,TimeUnit.SECONDS)
.build();
}
//封装dopost方法
public void dopost(String url, final OkHttpCallBack okHttpCallBack){
FormBody build = new FormBody.Builder().build();
Request build1 = new Request.Builder().url(url).get().build();
okHttpClient.newCall(build1).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.code()==200){
final String string = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
okHttpCallBack.onSuccess(string);
}
});
}
}
});
}
public interface OkHttpCallBack{
void onSuccess(String result);
void onFiled(String msg);
}
}
wight
package com.bawei.yuekao_2.wight;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.bawei.yuekao_2.R;
import com.bawei.yuekao_2.adapter.MyAdapter;
import com.bawei.yuekao_2.bean.Bean;
import com.bawei.yuekao_2.presenter.IPresenter;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
import java.util.List;
public class Main2Activity extends AppCompatActivity implements ViewInter,XRecyclerView.LoadingListener{
IPresenter iPresenter;
private List<List<Bean.DataBean.DatasBean>> list;
private XRecyclerView xRecyclerView;
private Button quan;
private TextView text_money;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xRecyclerView = findViewById(R.id.xRecyclerView);
quan = findViewById(R.id.quan);
text_money=findViewById(R.id.text_money);
xRecyclerView.setLayoutManager(new LinearLayoutManager(this));
iPresenter = new IPresenter(this);
iPresenter.getData("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=evaluation");
}
@Override
public void onSuccess(String result) {
Log.e("aaa",result+"111");
Bean bean = new Gson().fromJson(result, Bean.class);
//data父类
//list子类
List<Bean.DataBean> data = bean.getData();
for (Bean.DataBean a:data){
list = new ArrayList<>();
list.add(a.getDatas());
}
MyAdapter myAdapter = new MyAdapter(Main2Activity.this,data,quan);
xRecyclerView.setAdapter(myAdapter);
}
@Override
public void onRefresh() {
}
@Override
public void onLoadMore() {
}
private quanxuanLinaner quanxuanLinaner;
public void setquanxuanLinaner(quanxuanLinaner quanxuanLinaner) {
this.quanxuanLinaner = quanxuanLinaner;
}
public interface quanxuanLinaner{
void v();
}
}
package com.bawei.yuekao_2.wight;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bawei.yuekao_2.R;
//自定义MyView
public class MyView extends LinearLayout {
public MyView(Context context) {
super(context);
}
public MyView(final Context context, AttributeSet attrs) {
super(context, attrs);
final TextView ed_num,price;
Button ed_jia,ed_jian;
View inflate = LayoutInflater.from(context).inflate(R.layout.my_view, null, false);
price = inflate.findViewById(R.id.price);
ed_num = inflate.findViewById(R.id.ed_num);
ed_jia = inflate.findViewById(R.id.ed_jia);
ed_jian = inflate.findViewById(R.id.ed_jian);
addView(inflate);
}
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
package com.bawei.yuekao_2.wight;
public interface ViewInter {
//成功
void onSuccess(String result);
}
package com.bawei.yuekao_2.wight;
import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
import com.bawei.mydata.R;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.qqlogin).setOnClickListener(this);
findViewById(R.id.qqshare).setOnClickListener(this);
MapView mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);// 此方法必须重写
AMap aMap = mapView.getMap();
aMap.setTrafficEnabled(true);// 显示实时交通状况
//地图模式可选类型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT
// aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 卫星地图模式
// aMap.setMapType(AMap.MAP_TYPE_NAVI);//导航地图
aMap.setMapType(AMap.MAP_TYPE_NIGHT);//夜景地图
aMap.setMapType(AMap.MAP_TYPE_NORMAL);//白昼地图(即普通地图)
aMap.setTrafficEnabled(true);//显示实时路况图层,aMap是地图控制器对象。
}
@Override
public void onClick(View v) {
switch (v.getId()) {
/**
* qq登录
*/
case R.id.qqlogin:
final UMShareAPI umShareAPI = UMShareAPI.get(MainActivity.this);
/**
* 登录授权监听
*/
umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
/**
* 登录信息集合
* Log.i("Tag",map+"");
*/
String ion = map.get("profile_image_url");
String name = map.get("screen_name");
Toast.makeText(MainActivity.this, "昵称:" + name, Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "头像:" + ion, Toast.LENGTH_SHORT).show();
/**
*ion_qq是图片控件,只是为了验证登录成功后获取到你的QQ头像
*/
// Glide.with(MainActivity.this).load(s).into(umShareAPI);
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
}
});
break;
/**
* qq分享
* 分享监听
*/
case R.id.qqshare:
UMShareListener umShareListener = new UMShareListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onResult(SHARE_MEDIA platform) {
Log.d("plat", "platform" + platform);
Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SHARE_MEDIA platform, Throwable t) {
Toast.makeText(MainActivity.this, platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
Log.i("xxx", "onError: " + t);
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(MainActivity.this, platform + " 分享取消了", Toast.LENGTH_SHORT).show();
}
};
/**
* 友盟图片
*/
UMImage umImage = new UMImage(MainActivity.this, R.mipmap.ic_launcher);
new ShareAction(MainActivity.this)
.setPlatform(SHARE_MEDIA.QQ)//传入平台
.withMedia(umImage)//分享图片
.setCallback(umShareListener)//回调监听器
.share();
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(MainActivity.this).onActivityResult(requestCode, resultCode, data);
}
}
package com.bawei.yuekao_2.wight;
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.init(this,"5a12384aa40fa3551f0001d1","umeng",UMConfigure.DEVICE_TYPE_PHONE,"");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
}
}
权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
依赖
注意导jar包在libs 下,还注意在main 下建一个jniLibs
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.code.gson:gson:2.2.4'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'jp.wasabeef:glide-transformations:3.0.1'
implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
implementation 'com.github.bumptech.glide:glide:3.7.0'