AFragment首页的页面
package com.example.a24476.touchchannelmanagement;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.andy.library.AppApplication;
import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
import java.util.List;
import static com.andy.library.ChannelActivity.REQUEST_CODE;
import static com.andy.library.ChannelActivity.RESULT_JSON_KEY;
public class FragmentOne extends Fragment {
private TabLayout top;
private ViewPager pager;
private FragmentOnePagerAdapter adapter;
private List<ChannelBean> datas;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_one, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
top = view.findViewById(R.id.top);
pager = view.findViewById(R.id.pager);
adapter = new FragmentOnePagerAdapter(getChildFragmentManager());
pager.setAdapter(adapter);
top.setupWithViewPager(pager);
datas = new ArrayList<>();
//数据库查询频道
datas.add(new ChannelBean("体育", true));
datas.add(new ChannelBean("关注", true));
datas.add(new ChannelBean("推荐", true));
datas.add(new ChannelBean("国际", true));
datas.add(new ChannelBean("热点", true));
datas.add(new ChannelBean("军事", true));
datas.add(new ChannelBean("八卦", true));
datas.add(new ChannelBean("游戏", false));
datas.add(new ChannelBean("宠物", false));
datas.add(new ChannelBean("汽车", false));
datas.add(new ChannelBean("热卖", false));
datas.add(new ChannelBean("外卖", false));
datas.add(new ChannelBean("地图", false));
datas.add(new ChannelBean("视频", false));
datas.add(new ChannelBean("图片", false));
datas.add(new ChannelBean("音乐", false));
datas.add(new ChannelBean("家居", false));
datas.add(new ChannelBean("网路", false));
datas.add(new ChannelBean("购物", false));
datas.add(new ChannelBean("其他", false));
adapter.setmDatas(getSelectedResult(datas));
view.findViewById(R.id.to_cm).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//频道管理页面
//ChannelActivity.startChannelForResult(getActivity(), datas);
Gson gson = new Gson();
String jsonArray = gson.toJson(datas);
Intent intent = new Intent(getActivity(), ChannelActivity.class);
intent.putExtra(RESULT_JSON_KEY, jsonArray);
///
startActivityForResult(intent, REQUEST_CODE);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
String json = data.getStringExtra("json");
datas = new Gson().fromJson(json, new TypeToken<ArrayList<ChannelBean>>(){}.getType());
adapter.setmDatas(getSelectedResult(datas));
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
private List<ChannelBean> getSelectedResult(List<ChannelBean> datas) {
List<ChannelBean> result = new ArrayList<>();
for (ChannelBean bean:datas) {
if(bean.isSelect()) {
result.add(bean);
}
}
return result;
}
}
APageActivity适配器
package com.example.a24476.touchchannelmanagement;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import com.andy.library.ChannelBean;
import java.util.ArrayList;
import java.util.List;
public class FragmentOnePagerAdapter extends FragmentPagerAdapter {
private List<ChannelBean> mDatas;
public FragmentOnePagerAdapter(FragmentManager fm) {
super(fm);
mDatas = new ArrayList<>();
}
public void setmDatas(List<ChannelBean> mDatas) {
this.mDatas = mDatas;
notifyDataSetChanged();
}
@Override
public Fragment getItem(int i) {
return new AFragment();
}
@Override
public int getCount() {
return mDatas.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mDatas.get(position).getName();
}
}