MVP+Retrofit+Rxjava+ButterKnife+Fresco+Recyclerview+GreenDao+泛型+完整Demo

GreenDao 集成步骤

外部  build.gradle

第一步:

mavenCentral() // add repositor

第二步:

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
内部  build.gradle

第三步

apply plugin: 'org.greenrobot.greendao' // apply plugin
第四步:  指定自动生成的daoo包

**
 * greendao
 * */
    greendao{
        targetGenDir 'src/main/java'
        daoPackage 'com.example.snmsung.zhoukaolianxi2.dao'
        schemaVersion 1
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    impleme

第五步: 导依赖

compile 'org.greenrobot:greendao:3.2.2' // add library

导依赖

compile 'io.reactivex:rxjava:1.1.0'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
compile 'com.facebook.fresco:fresco:0.11.0'
compile 'it.sephiroth.android.library.picasso:picasso:2.5.2.4b'
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
compile 'org.greenrobot:greendao:3.2.2' // add library

工具类

ApiService

package com.example.snmsung.zhoukaolianxi2.Utlis;

import com.example.snmsung.zhoukaolianxi2.Bean.User;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import rx.Observable;



public interface ApiService {
   @GET("/api/data/福利/10/1")
    Observable<User> getData();

    Retrofit RETROFIT = new Retrofit.Builder()
            .baseUrl("http://gank.io")
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    ApiService API_SERVICE = RETROFIT.create(ApiService.class);
}

Application


package com.example.snmsung.zhoukaolianxi2;

import android.app.Application;

import com.example.snmsung.zhoukaolianxi2.dao.DaoMaster;
import com.example.snmsung.zhoukaolianxi2.dao.DaoSession;
import com.facebook.drawee.backends.pipeline.Fresco;

import org.greenrobot.greendao.database.Database;




public class App extends Application{
    public static DaoSession session;
    @Override
    public void onCreate() {
        super.onCreate();

        Fresco.initialize(this);
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this,"test");

        Database database =  helper.getWritableDb();


       session = new DaoMaster(database).newSession();

    }
}

IbanView
package com.example.snmsung.zhoukaolianxi2.View;

import com.example.snmsung.zhoukaolianxi2.Bean.User;


/**
 * Created by SNMSUNG on 2017/12/2.
 */

public interface IbanView {

    void showHome(User user);
}
Moder层  接口

lHome
package com.example.snmsung.zhoukaolianxi2.Moder;

import com.example.snmsung.zhoukaolianxi2.Bean.User;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public interface lHome {
    void showData1(MoVie moVie);
    interface MoVie {
        void complete(User user);
    }
}
Moder 层

package com.example.snmsung.zhoukaolianxi2.Moder;

import com.example.snmsung.zhoukaolianxi2.Bean.User;
import com.example.snmsung.zhoukaolianxi2.Utlis.ApiService;

import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public class Home_Moder implements lHome {


    @Override
    public void showData1(final MoVie moVie) {
        ApiService.API_SERVICE.getData()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<User>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(User user) {
                        moVie.complete(user);
                    }
                });

    }
}

基类

BaseFragment
package com.example.snmsung.zhoukaolianxi2.Presemter;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public abstract class BaseFragment<T extends IPresenter> extends Fragment {
    T presenter;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        createpresenter();
    }

    protected abstract void createpresenter();

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (presenter != null) {
            presenter.datach();
        }
    }
}

泛型 

IPresenter


package com.example.snmsung.zhoukaolianxi2.Presemter;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public interface IPresenter<T> {
    void  attch(T view);
    void   datach();
}


P层

Presenter_View
package com.example.snmsung.zhoukaolianxi2.Presemter;


import com.example.snmsung.zhoukaolianxi2.Bean.User;
import com.example.snmsung.zhoukaolianxi2.Moder.Home_Moder;
import com.example.snmsung.zhoukaolianxi2.Moder.lHome;
import com.example.snmsung.zhoukaolianxi2.View.IbanView;

import java.lang.ref.SoftReference;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public class Presenter_View implements IPresenter<IbanView> {

    lHome home;


    SoftReference<IbanView> softReference;


    public Presenter_View(IbanView view) {
        attch(view);
        home = new Home_Moder();
    }

    public void ShowHome() {
        home.showData1(new lHome.MoVie() {
            @Override
            public void complete(User user) {
                softReference.get().showHome(user);
            }
        });
    }


    @Override
    public void attch(IbanView view) {
        softReference = new SoftReference(view);
    }

    @Override
    public void datach() {
        softReference.clear();
    }
}

适配器

MyAdapter

package com.example.snmsung.zhoukaolianxi2.Adapter;

import android.content.Context;
import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.snmsung.zhoukaolianxi2.Bean.ResultsBean;
import com.example.snmsung.zhoukaolianxi2.Bean.User;
import com.example.snmsung.zhoukaolianxi2.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
    private Context context;
    List<ResultsBean> list;

    public MyAdapter(Context context) {
        this.context=context;

    }

    @Override
    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.item, null);
        MyHolder myHolder = new MyHolder(view);


        return myHolder;
    }

   public  void  addData(User user){
        if (list==null){
            list=new ArrayList<>();
        }
        list.addAll(user.getResults());
        notifyDataSetChanged();
   }

    @Override
    public void onBindViewHolder(MyHolder holder, int position) {
        holder.textView.setText(list.get(position).getWho());
        holder.imageView.setImageURI(Uri.parse(list.get(position).getUrl()));

       //点击 EventBus 粘性相传
      holder.textView.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        EventBus.getDefault().postSticky(new EventBean(list.get(position).getUrl(),list.get(position).getWho()));
         context.startActivity(new Intent(context, Main2Activity.class));

     }
});
 } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public class MyHolder extends RecyclerView.ViewHolder { private final ImageView imageView; private final TextView textView; public MyHolder(View itemView) { super(itemView); imageView = (ImageView) itemView.findViewById(R.id.img); textView = (TextView) itemView.findViewById(R.id.tv); } }}

  EventB 注册

package com.example.snmsung.zhouikaolianxi2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.example.snmsung.zhouikaolianxi2.Bean.EventBean;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        EventBus.getDefault().register(this);
    }
    @Subscribe(sticky = true)
    public  void event(EventBean eventBean){
        Toast.makeText(this,""+eventBean.getTitle()+""+eventBean.getUrl(),Toast.LENGTH_SHORT).show();


    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }
}

User 大Bean 

package com.example.snmsung.zhoukaolianxi2.Bean;

import java.util.List;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public class User {


    /**
     * error : false
     * results : [{"_id":"5a1ad043421aa90fe725366c","createdAt":"2017-11-26T22:31:31.363Z","desc":"11-26","publishedAt":"2017-11-30T13:11:10.665Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171126223118_jeCYtY_chayexiaoguo_apple_26_11_2017_22_30_59_409.jpeg","used":true,"who":"代码家"},{"_id":"5a16171d421aa90fef203553","createdAt":"2017-11-23T08:32:29.546Z","desc":"11-23","publishedAt":"2017-11-24T11:08:03.624Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171123083218_5mhRLg_sakura.gun_23_11_2017_8_32_9_312.jpeg","used":true,"who":"daimajia"},{"_id":"5a121895421aa90fe50c021e","createdAt":"2017-11-20T07:49:41.797Z","desc":"2017-11-20","publishedAt":"2017-11-20T12:42:06.454Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171120074925_ZXDh6l_joanne_722_20_11_2017_7_49_16_336.jpeg","used":true,"who":"daimajia"},{"_id":"5a0e4a0d421aa90fe7253643","createdAt":"2017-11-17T10:31:41.155Z","desc":"11-17","publishedAt":"2017-11-17T12:39:48.189Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/2017-11-17-22794158_128707347832045_9158114204975104000_n.jpg","used":true,"who":"代码家"},{"_id":"5a0d0c97421aa90fe2f02c60","createdAt":"2017-11-16T11:57:11.4Z","desc":"11-16","publishedAt":"2017-11-16T12:01:05.619Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171116115656_vnsrab_Screenshot.jpeg","used":true,"who":"代码家"},{"_id":"5a0a5141421aa90fef203525","createdAt":"2017-11-14T10:13:21.137Z","desc":"11-14","publishedAt":"2017-11-14T10:43:36.180Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171114101305_NIAzCK_rakukoo_14_11_2017_10_12_58_703.jpeg","used":true,"who":"daimajia"},{"_id":"5a08ea7b421aa90fe7253628","createdAt":"2017-11-13T08:42:35.306Z","desc":"11-13","publishedAt":"2017-11-13T12:10:58.643Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171113084220_LuJgqv_sakura.gun_13_11_2017_8_42_12_311.jpeg","used":true,"who":"daimajia"},{"_id":"5a03b502421aa90fe7253618","createdAt":"2017-11-09T09:53:06.802Z","desc":"11-9","publishedAt":"2017-11-10T08:10:02.838Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171109095254_dOw5qh_bluenamchu_9_11_2017_9_52_47_256.jpeg","used":true,"who":"daimajia"},{"_id":"5a011452421aa90fe7253606","createdAt":"2017-11-07T10:02:58.73Z","desc":"11-7","publishedAt":"2017-11-08T11:00:50.559Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171107100244_0fbENB_yyannwong_7_11_2017_10_2_5_982.jpeg","used":true,"who":"daimajia"},{"_id":"59fa7379421aa90fe50c01cc","createdAt":"2017-11-02T09:23:05.497Z","desc":"11-2","publishedAt":"2017-11-06T12:40:39.976Z","source":"chrome","type":"福利","url":"http://7xi8d6.com1.z0.glb.clouddn.com/20171102092251_AY0l4b_alrisaa_2_11_2017_9_22_44_335.jpeg","used":true,"who":"daimajia"}]
     */

    private boolean error;
    private List<ResultsBean> results;

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public List<ResultsBean> getResults() {
        return results;
    }

    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }





}

 
ResultsBean   小Bean

package com.example.snmsung.zhoukaolianxi2.Bean;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Generated;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import org.jetbrains.annotations.PropertyKey;

import java.util.jar.Attributes;

@Entity
public class ResultsBean {
    /**
     * _id : 5a1ad043421aa90fe725366c
     * createdAt : 2017-11-26T22:31:31.363Z
     * desc : 11-26
     * publishedAt : 2017-11-30T13:11:10.665Z
     * source : chrome
     * type : 福利
     * url : http://7xi8d6.com1.z0.glb.clouddn.com/20171126223118_jeCYtY_chayexiaoguo_apple_26_11_2017_22_30_59_409.jpeg
     * used : true
     * who : 代码家
     */
  @Property(nameInDb = "tt")
    @Id(autoincrement = true)
    private Long Iid;
    private String _id;
    private String createdAt;
    private String desc;
    private String publishedAt;
    private String source;
    private String type;
    private String url;
    private boolean used;
    private String who;

    @Generated(hash = 2112844842)
    public ResultsBean(Long Iid, String _id, String createdAt, String desc, String publishedAt, String source, String type,
                       String url, boolean used, String who) {
        this.Iid = Iid;
        this._id = _id;
        this.createdAt = createdAt;
        this.desc = desc;
        this.publishedAt = publishedAt;
        this.source = source;
        this.type = type;
        this.url = url;
        this.used = used;
        this.who = who;
    }

    @Generated(hash = 1822271928)
    public ResultsBean() {
    }

    public Long getIid() {
        return this.Iid;
    }

    public void setIid(Long Iid) {
        this.Iid = Iid;
    }

    public String get_id() {
        return this._id;
    }

    public void set_id(String _id) {
        this._id = _id;
    }

    public String getCreatedAt() {
        return this.createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getDesc() {
        return this.desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getPublishedAt() {
        return this.publishedAt;
    }

    public void setPublishedAt(String publishedAt) {
        this.publishedAt = publishedAt;
    }

    public String getSource() {
        return this.source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getUrl() {
        return this.url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public boolean getUsed() {
        return this.used;
    }

    public void setUsed(boolean used) {
        this.used = used;
    }

    public String getWho() {
        return this.who;
    }

    public void setWho(String who) {
        this.who = who;
    }

    @Override
    public String toString() {
        return "ResultsBean{" +
                "Iid=" + Iid +
                ", _id='" + _id + '\'' +
                ", createdAt='" + createdAt + '\'' +
                ", desc='" + desc + '\'' +
                ", publishedAt='" + publishedAt + '\'' +
                ", source='" + source + '\'' +
                ", type='" + type + '\'' +
                ", url='" + url + '\'' +
                ", used=" + used +
                ", who='" + who + '\'' +
                '}';
    }
}

Fragment 


package com.example.snmsung.zhoukaolianxi2.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.snmsung.zhoukaolianxi2.Adapter.MyAdapter;
import com.example.snmsung.zhoukaolianxi2.App;
import com.example.snmsung.zhoukaolianxi2.Bean.ResultsBean;
import com.example.snmsung.zhoukaolianxi2.R;
import com.example.snmsung.zhoukaolianxi2.Bean.User;
import com.example.snmsung.zhoukaolianxi2.Presemter.BaseFragment;
import com.example.snmsung.zhoukaolianxi2.Presemter.Presenter_View;
import com.example.snmsung.zhoukaolianxi2.Utlis.ApiService;
import com.example.snmsung.zhoukaolianxi2.View.IbanView;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

/**
 * Created by SNMSUNG on 2017/12/2.
 */

public class Fragment1 extends BaseFragment<Presenter_View> implements IbanView {
    @BindView(R.id.rec)
    RecyclerView rec;
    Unbinder unbinder;
    Presenter_View presenter;
    private MyAdapter myAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.fragment1, null);

        unbinder = ButterKnife.bind(this, view);
        presenter.ShowHome();



        rec.setLayoutManager(new LinearLayoutManager(getActivity()));
        myAdapter = new MyAdapter(getActivity());
        rec.setAdapter(myAdapter);
        List<ResultsBean> listBeans =  App.session.getResultsBeanDao().loadAll();

        for(ResultsBean bean : listBeans){
            System.out.println(bean.toString());
        }
        return view;
    }




    @Override
    protected void createpresenter() {
        presenter = new Presenter_View(this);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }


    @Override
    public void showHome(User user) {
        myAdapter.addData(user);
    }
}
  MainActivity 类

package com.example.snmsung.zhoukaolianxi2;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import com.example.snmsung.zhoukaolianxi2.fragment.Fragment1;
import com.example.snmsung.zhoukaolianxi2.fragment.Fragment2;
import com.example.snmsung.zhoukaolianxi2.fragment.Fragment3;
import com.example.snmsung.zhoukaolianxi2.fragment.Fragment4;
import com.example.snmsung.zhoukaolianxi2.fragment.Fragment5;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends FragmentActivity {
    List<Fragment> list_frag;
    @BindView(R.id.vp1)
    ViewPager vp;
    @BindView(R.id.btn1)
    RadioButton btn1;
    @BindView(R.id.btn2)
    RadioButton btn2;
    @BindView(R.id.btn3)
    RadioButton btn3;
    @BindView(R.id.btn4)
    RadioButton btn4;
    @BindView(R.id.btn5)
    RadioButton btn5;
    @BindView(R.id.rg)
    RadioGroup rg;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        addFragment();
    }

    private void addFragment() {
        list_frag = new ArrayList<>();
        list_frag.add(new Fragment1());
        list_frag.add(new Fragment2());
        list_frag.add(new Fragment3());
        list_frag.add(new Fragment4());
        list_frag.add(new Fragment5());

        ViewPagerp viewPagerp = new ViewPagerp(getSupportFragmentManager());
        vp.setAdapter(viewPagerp);
    }


    public class ViewPagerp extends FragmentPagerAdapter {
        public ViewPagerp(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return list_frag.get(position);
        }

        @Override
        public int getCount() {
            return list_frag == null ? 0 : list_frag.size();
        }
    }
}


Drawable 里的图片  5个

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@mipmap/ac1"></item>
    <item  android:drawable="@mipmap/ac0"></item>
</selector>


dibu布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout
        android:background="#fff"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal">


        <RadioGroup
            android:id="@+id/rg"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/btn1"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:background="@drawable/select1"
                android:button="@null" />

            <RadioButton
                android:id="@+id/btn2"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:background="@drawable/select2"
                android:button="@null" />

            <RadioButton
                android:id="@+id/btn3"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:background="@drawable/select3"
                android:button="@null" />

            <RadioButton
                android:id="@+id/btn4"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:background="@drawable/select4"
                android:button="@null" />

            <RadioButton
                android:id="@+id/btn5"
                android:layout_width="wrap_content"
                android:layout_height="60dp"
                android:layout_weight="1"
                android:background="@drawable/select5"
                android:button="@null" />
        </RadioGroup>
    </LinearLayout>
</LinearLayout>



MainActivity 布局


<?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="com.example.snmsung.zhukaolianxi.MainActivity">

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="880dp" />

    <include
        android:id="@+id/include2"
        layout="@layout/ditu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"></include>

</LinearLayout>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值