zoukankan      html  css  js  c++  java
  • 网络请求展示数据

    public interface GankApi {
        @GET("api/data/Android/{size}/{page}")
        Call<GankData<GankFeed>> list(@Path("size") int size,@Path("page") int page);
    

      

    public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
        private Context context;
        private List<GankFeed> list;
        private View view;
    
    
        public Myadapter(Context context, List<GankFeed> list) {
            this.context = context;
            this.list = list;
        }
    
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            if (viewType == 0){
                view = LayoutInflater.from(context).inflate(R.layout.item_first, parent, false);
                myOne myOne = new myOne(view);
                return myOne;
            }else{
                view = LayoutInflater.from(context).inflate(R.layout.item_second, parent, false);
                myTwo myTwo = new myTwo(view);
                return myTwo;
            }
        }
    
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
                if(holder instanceof myOne){
                   myOne holder1 = (myOne) holder;
                    GankFeed feed = list.get(position);
                    holder1.tv.setText(feed.getType());
                    holder1.tv2.setText(feed.getPublishedAt());
                }else if(holder instanceof myTwo){
                    myTwo two = (myTwo) holder;
                    GankFeed gankFeed = list.get(position);
                    two.tv.setText(gankFeed.getType());
                    two.tv2.setText(gankFeed.getPublishedAt());
                    ImageLoader.getInstance().displayImage(gankFeed.getImages().toString(),two.imageView);
                }
        }
    
        @Override
        public int getItemViewType(int position) {
            GankFeed gankFeed = list.get(position);
            List<String> images = gankFeed.getImages();
            if(images == null){
                return 0;
            }else {
                return 1;
            }
    
        }
    
    
        @Override
        public int getItemCount() {
            return list.size();
        }
        class myOne extends RecyclerView.ViewHolder{
        @BindView(R.id.tv1)
             TextView tv;
        @BindView(R.id.tv2)
             TextView tv2;
    
            public myOne(View itemView) {
                super(itemView);
                ButterKnife.bind(this,itemView);
            }
        }
        class myTwo extends RecyclerView.ViewHolder{
            @BindView(R.id.second1)
            TextView tv;
            @BindView(R.id.second2)
             TextView tv2;
            @BindView(R.id.iv)
            ImageView imageView;
    
            public myTwo(View itemView) {
                super(itemView);
                ButterKnife.bind(this,itemView);
    
            }
        }
    }
    

      

    public class BaseClass extends AppCompatActivity {
    
    
        private Unbinder bind;
    
        @Override
        public void setContentView(View view) {
            super.setContentView(view);
            bind = ButterKnife.bind(this);
        }
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            if (bind!= null){
                bind.unbind();
            }
    
        }
    }
    

      

    public class FragmentOne extends Fragment{
    
        private RecyclerView recyclerView;
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragment_one, container, false);
    
            RecyclerView.LayoutManager manager = new LinearLayoutManager(getContext());
            recyclerView = view.findViewById(R.id.rrv);
            //布局加载
            recyclerView.setLayoutManager(manager);
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("http://gank.io/")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
            final GankApi gankApi = retrofit.create(GankApi.class);
            Call<GankData<GankFeed>> list = gankApi.list(10, 1);
            DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getContext(),"notes-db");
            Database db = helper.getWritableDb();
            final DaoSession daoSession = new DaoMaster(db).newSession();
            list.enqueue(new Callback<GankData<GankFeed>>() {
                @Override
                public void onResponse(Call<GankData<GankFeed>> call, Response<GankData<GankFeed>> response) {
                    GankFeedDao gankFeedDao = daoSession.getGankFeedDao();
                    for (GankFeed feed:response.body().results) {
                        gankFeedDao.insert(feed);
                    }
                    List<GankFeed> results = response.body().results;
                    Myadapter adapter = new Myadapter(getContext(),results);
                    recyclerView.setAdapter(adapter);
                }
    
                @Override
                public void onFailure(Call<GankData<GankFeed>> call, Throwable t) {
    
                }
            });
            return view;
        }
    }
    

      

    public class ImageTypeConverter implements PropertyConverter<List<String>, String> {
        @Override
        public List<String> convertToEntityProperty(String databaseValue) {
            ArrayList<String> list = new ArrayList<>();
            list.add(databaseValue);
            return list;
        }
    
        @Override
        public String convertToDatabaseValue(List<String> entityProperty) {
            return (entityProperty == null && !entityProperty.isEmpty()) ? "" : entityProperty.get(0);
        }
    }
    

      

    public class MainActivity extends BaseClass {
    
    
        @BindView(R.id.frg)
        FrameLayout mFrg;
        @BindView(R.id.bt1)
        RadioButton mBt1;
        @BindView(R.id.bt2)
        RadioButton mBt2;
        @BindView(R.id.bt3)
        RadioButton mBt3;
        @BindView(R.id.bt4)
        RadioButton mBt4;
        @BindView(R.id.bt5)
        RadioButton mBt5;
        @BindView(R.id.rg)
        RadioGroup mRg;
        private List<Fragment> fragmentList;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            ButterKnife.bind(this);
            //实例化
            fragmentList = new ArrayList<>();
            //添加fragment
            addFragment();
            //设置默认
            mRg.check(R.id.bt1);
            switchFragmnet(0);
    
        }
    
        @OnClick({R.id.bt1, R.id.bt2, R.id.bt3, R.id.bt4, R.id.bt5, R.id.rg, R.id.frg})
        public void onClick(View v) {
            switch (v.getId()) {
                default:
                    break;
                case R.id.bt1:
                    switchFragmnet(0);
                    break;
                case R.id.bt2:
                    switchFragmnet(1);
                    break;
                case R.id.bt3:
                    switchFragmnet(2);
                    break;
                case R.id.bt4:
                    switchFragmnet(3);
                    break;
                case R.id.bt5:
                    switchFragmnet(4);
                    break;
                case R.id.rg:
                    break;
                case R.id.frg:
                    break;
            }
        }
    
        private void addFragment() {
            fragmentList.add(new FragmentOne());
            fragmentList.add(new FragmentTwo());
            fragmentList.add(new FragmentThree());
            fragmentList.add(new FragmentFour());
            fragmentList.add(new FragmentFive());
    
        }
    
        private void switchFragmnet(int position) {
            //快开启一个事务
            FragmentTransaction fragmentManager = getSupportFragmentManager().beginTransaction();
            for (int i = 0; i < fragmentList.size(); i++) {
                Fragment fragment = fragmentList.get(i);
                if (i == position) {
                    //显示fragment
                    if (fragment.isAdded()) {
                        //如果被事务添加,显示
                        fragmentManager.show(fragment);
                    } else {
                        //如果这个fragment没有被事务添加过,添加
                        fragmentManager.add(R.id.frg, fragment);
                    }
    
                }else{
                    //隐藏fragment
                    if (fragment.isAdded()) {
                        //如果这个fragment已经被事务添加,隐藏
                        fragmentManager.hide(fragment);
                    }
                }
    
            }
            fragmentManager.commit();
    
        }
    }
    

      item_second

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <LinearLayout
            android:layout_margin="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:id="@+id/second1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"/>
            <TextView
                android:layout_marginTop="10dp"
                android:id="@+id/second2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2"/>
        </LinearLayout>
    <ImageView
        android:id="@+id/iv"
        android:layout_marginRight="10dp"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_launcher"/>
    
    </RelativeLayout>
    

      item_first

    <?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="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_margin="10dp"
            android:id="@+id/tv1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="3"/>
        <TextView
            android:layout_margin="10dp"
            android:id="@+id/tv2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="4"/>
    
    </LinearLayout>
    

      one

    <?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="match_parent"
        android:orientation="vertical">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/rrv"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>
    
    </LinearLayout>
    

      

  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/wsq110/p/7975425.html
Copyright © 2011-2022 走看看