侧拉点击跳转多条目 传值

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout
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:id="@+id/drawerLayout"
android:layout_height=“match_parent”
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tabLayout">
    </android.support.design.widget.TabLayout>
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/viewPager">
    </android.support.v4.view.ViewPager>
</LinearLayout>
<fragment
    class="com.bwie.a20181019_a.ChouFragment"
    android:layout_width="match_parent"
    android:layout_gravity="start"
    android:layout_height="match_parent"/>

</android.support.v4.widget.DrawerLayout>

MainActivity

package com.bwie.a20181019_a;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.TableLayout;

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

public class MainActivity extends AppCompatActivity {

private DrawerLayout drawerLayout;
private ViewPager viewPager;
private ActionBarDrawerToggle mToggle;
private List<Fragment> fragments;
private TabLayout tabLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化控件
    initView();
    //初始化ActionBar
    initActionBar();
    //初始化ViewPager
    initViewPager();
}

private void initViewPager() {
    //创建list集合
    fragments = new ArrayList<>();
    fragments.add(new OneFragment());
    fragments.add(new TwoFragment());
    fragments.add(new ThreeFragment());
    fragments.add(new FourFragment());
    fragments.add(new FiveFragment());
    //适配器
    /*MyAdapter adapter = new MyAdapter(getSupportFragmentManager());
    adapter.setFragments(fragments);
    viewPager.setAdapter(adapter);*/
    viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int i) {
            return fragments.get(i);
        }

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

    tabLayout.addTab(tabLayout.newTab());
    tabLayout.addTab(tabLayout.newTab());
    tabLayout.addTab(tabLayout.newTab());
    tabLayout.addTab(tabLayout.newTab());
    tabLayout.addTab(tabLayout.newTab());

    tabLayout.setupWithViewPager(viewPager);

    tabLayout.getTabAt(0).setText("花边");
    tabLayout.getTabAt(1).setText("推荐");
    tabLayout.getTabAt(2).setText("热点");
    tabLayout.getTabAt(3).setText("广告");
    tabLayout.getTabAt(4).setText("其他");

}

private void initActionBar() {
    //创建ActionBar
    ActionBar actionBar = getSupportActionBar();
    //给左上角设置按钮
    actionBar.setDisplayHomeAsUpEnabled(true);
    //实例化ActionBarDrawerToggle
    mToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open, R.string.close);
    //实现同步
    mToggle.syncState();
    //关联
    drawerLayout.addDrawerListener(mToggle);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mToggle.onOptionsItemSelected(item)){
        return true;
    }
    return super.onOptionsItemSelected(item);
}

private void initView() {
    drawerLayout = findViewById(R.id.drawerLayout);
    tabLayout = findViewById(R.id.tabLayout);
    viewPager = findViewById(R.id.viewPager);
    drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}

}

MyAdapter

package com.bwie.a20181019_a;

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

import java.util.List;

public class MyAdapter extends FragmentPagerAdapter {

扫描二维码关注公众号,回复: 3733241 查看本文章
private List<Fragment> fragments;

public void setFragments(List<Fragment> fragments) {
    this.fragments = fragments;
}

public MyAdapter(FragmentManager fm) {
    super(fm);
}

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

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

}

OneFragment

package com.bwie.a20181019_a;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;

import com.bwie.xlistview.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;

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

/**

  • A simple {@link Fragment} subclass.
    */
    public class OneFragment extends Fragment {

    private XListView xlist;
    private List<News.DataBean> list;
    public static final String url = “http://www.xieast.com/api/news/news.php?page=”;
    private int page = 1;
    private NewsAdapter newsAdapter;
    Handler handler = new Handler();

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = View.inflate(getActivity(),R.layout.fragment_one,null);
    xlist = view.findViewById(R.id.xlist);
    return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    //创建List集合
    list = new ArrayList<>();
    //创建适配器
    newsAdapter = new NewsAdapter(getActivity(), list);
    xlist.setAdapter(newsAdapter);

     //缓存
     DisplayImageOptions options = new DisplayImageOptions.Builder()
             .cacheInMemory(true) //进行图片内存缓存
             .cacheOnDisk(true) //进行SD卡缓存
             .bitmapConfig(Bitmap.Config.RGB_565) //设置色彩
             .build();
    
    
     //刷新
     xlist.setPullRefreshEnable(true);
     //加载更多
     xlist.setPullLoadEnable(true);
    
     getDate(1,false);
    
     //点击条目跳转新的activity
     xlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             Intent intent = new Intent(getActivity(),TwoActivity.class);
             intent.putExtra("title",list.get(position-1).getTitle());
             intent.putExtra("time",list.get(position-1).getDate());
             intent.putExtra("author",list.get(position-1).getAuthor_name());
             intent.putExtra("image1",list.get(position-1).getThumbnail_pic_s());
             intent.putExtra("image2",list.get(position-1).getThumbnail_pic_s02());
             intent.putExtra("image3",list.get(position-1).getThumbnail_pic_s03());
             startActivity(intent);
         }
     });
    

    }

    private void getDate(int i, final boolean b) {
    new AsyncTask<String, Integer, String>() {
    @Override
    protected String doInBackground(String… strings) {
    return HttpUtils.getFromFile(strings[0]);
    }

         @Override
         protected void onPostExecute(String s) {
             super.onPostExecute(s);
             Gson gson = new Gson();
             News news  = gson.fromJson(s,News.class);
             if (news != null){
                 list.clear();
                 if (!b){
                     list.addAll(news.getData());
                 }
                 newsAdapter.notifyDataSetChanged();
                 handler.postDelayed(new Runnable() {
                     @Override
                     public void run() {
                         if (b){
                             xlist.stopLoadMore();
                         }else {
                             xlist.stopRefresh();
                             xlist.setRefreshTime("刚刚");
                         }
                     }
                 },5000);
             }
         }
     }.execute(url+page);
    

    }
    }

NewsAdapter

package com.bwie.a20181019_a;

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

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

public class NewsAdapter extends BaseAdapter {

public static final int TYPE_ONE_PIC = 0;
public static final int TYPE_TWO_PIC = 1;
public static final int TYPE_THREE_PIC = 2;
private Context context;
private List<News.DataBean> list;

public NewsAdapter(Context context, List<News.DataBean> list) {
    this.context = context;
    this.list = list;
}

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

@Override
public Object getItem(int position) {
    return list.get(position);
}

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

@Override
public int getViewTypeCount() {
    return 3;
}

@Override
public int getItemViewType(int position) {
    //首先获取下标
    News.DataBean bean = list.get(position);
    //判断图片是否存在
    if (!TextUtils.isEmpty(bean.getThumbnail_pic_s())){
        return TYPE_THREE_PIC;
    }else if (!TextUtils.isEmpty(bean.getThumbnail_pic_s02())){
        return TYPE_TWO_PIC;
    }else {
        return TYPE_ONE_PIC;
    }
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder1 holder1 = null;
    ViewHolder2 holder2 = null;
    ViewHolder3 holder3 = null;

    int type = getItemViewType(position);
    switch (type){
        case TYPE_ONE_PIC:
            if (convertView == null){
                holder1 = new ViewHolder1();
                convertView = View.inflate(context,R.layout.news1,null);
                holder1.title = convertView.findViewById(R.id.title);
                holder1.time = convertView.findViewById(R.id.time);
                holder1.author = convertView.findViewById(R.id.author);
                holder1.imageLogo1 = convertView.findViewById(R.id.imageLogo1);
                convertView.setTag(holder1);
            }else {
                holder1 = (ViewHolder1) convertView.getTag();
            }
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder1.imageLogo1);
            holder1.title.setText(list.get(position).getTitle());
            holder1.time.setText(list.get(position).getDate());
            holder1.author.setText(list.get(position).getAuthor_name());
            break;
        case TYPE_TWO_PIC:
            if (convertView == null){
                holder2 = new ViewHolder2();
                convertView = View.inflate(context,R.layout.news2,null);
                holder2.title = convertView.findViewById(R.id.title);
                holder2.time = convertView.findViewById(R.id.time);
                holder2.author = convertView.findViewById(R.id.author);
                holder2.imageLogo1 = convertView.findViewById(R.id.imageLogo1);
                holder2.imageLogo2 = convertView.findViewById(R.id.imageLogo2);
                convertView.setTag(holder2);
            }else {
                holder2 = (ViewHolder2) convertView.getTag();
            }
            holder2.title.setText(list.get(position).getTitle());
            holder2.time.setText(list.get(position).getDate());
            holder2.author.setText(list.get(position).getAuthor_name());
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder2.imageLogo1);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder2.imageLogo2);

            break;
        case TYPE_THREE_PIC:
            if (convertView == null){
                holder3 = new ViewHolder3();
                convertView = View.inflate(context,R.layout.news3,null);
                holder3.title = convertView.findViewById(R.id.title);
                holder3.time = convertView.findViewById(R.id.time);
                holder3.author = convertView.findViewById(R.id.author);
                holder3.imageLogo1 = convertView.findViewById(R.id.imageLogo1);
                holder3.imageLogo2 = convertView.findViewById(R.id.imageLogo2);
                holder3.imageLogo3 = convertView.findViewById(R.id.imageLogo3);
                convertView.setTag(holder3);
            }else {
                holder3 = (ViewHolder3) convertView.getTag();
            }
            holder3.title.setText(list.get(position).getTitle());
            holder3.time.setText(list.get(position).getDate());
            holder3.author.setText(list.get(position).getAuthor_name());
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder3.imageLogo1);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder3.imageLogo2);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holder3.imageLogo3);
            break;
    }

    return convertView;
}
class ViewHolder1{
    TextView title;
    TextView author;
    TextView time;
    ImageView imageLogo1;
}
class ViewHolder2{
    TextView title;
    TextView author;
    TextView time;
    ImageView imageLogo1;
    ImageView imageLogo2;
}
class ViewHolder3{
    TextView title;
    TextView author;
    TextView time;
    ImageView imageLogo1;
    ImageView imageLogo2;
    ImageView imageLogo3;
}

}

news3.xml

<?xml version="1.0" encoding="utf-8"?>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:id="@+id/title"
        android:text="Title"
        android:textSize="16dp"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/author"
            android:layout_marginTop="10dp"
            android:text="author"/>
        <View
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:layout_weight="1"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/time"
            android:text="time"/>
    </LinearLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageLogo1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="120dp" />
    <ImageView
    android:id="@+id/imageLogo2"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="120dp" />
    <ImageView
        android:id="@+id/imageLogo3"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="120dp" />
</LinearLayout>
## TwoActivity package com.bwie.a20181019_a;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

public class TwoActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_two);
    //找控件
    TextView title = findViewById(R.id.title);
    TextView author = findViewById(R.id.author);
    TextView time = findViewById(R.id.time);
    ImageView image1 = findViewById(R.id.image1);
    ImageView image2 = findViewById(R.id.image2);
    ImageView image3 = findViewById(R.id.image3);
    Intent intent = getIntent();
    title.setText(intent.getStringExtra("title"));
    author.setText(intent.getStringExtra("author"));
    time.setText(intent.getStringExtra("time"));
    //image1.setImageResource(intent.getStringExtra("image1"));
    String aimage1 = intent.getStringExtra("image1");
    String aimage2 = intent.getStringExtra("image2");
    String aimage3 = intent.getStringExtra("image3");
    ImageLoader.getInstance().displayImage(aimage1,image1);
    ImageLoader.getInstance().displayImage(aimage2,image2);
    ImageLoader.getInstance().displayImage(aimage3,image3);

}

}

猜你喜欢

转载自blog.csdn.net/qq_42785994/article/details/83211709