public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TabLayout tab; private ImageButton imgbtn; private ArrayList<ChannelBean> channelBeans; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 tab = (TabLayout) findViewById(R.id.tab); imgbtn = (ImageButton) findViewById(R.id.imgbtn); //tab设置模式 tab.setTabMode(TabLayout.MODE_SCROLLABLE); //获取数据 initData(); //imgbtn监听 imgbtn.setOnClickListener(this); } private void initData() { //准备栏目的数据 channelBeans = new ArrayList<ChannelBean>(); channelBeans.add(new ChannelBean("热点", true)); channelBeans.add(new ChannelBean("军事", true)); channelBeans.add(new ChannelBean("八卦", true)); channelBeans.add(new ChannelBean("游戏", true)); channelBeans.add(new ChannelBean("宠物", true)); channelBeans.add(new ChannelBean("热卖", true)); channelBeans.add(new ChannelBean("条目一", false)); channelBeans.add(new ChannelBean("条目二", false)); channelBeans.add(new ChannelBean("条目三", false)); channelBeans.add(new ChannelBean("条目四", false)); channelBeans.add(new ChannelBean("条目五", false)); //遍历,把为TRUE的数据福赋值给tab for (int i = 0; i < channelBeans.size(); i++) { if (channelBeans.get(i).isSelect()) { tab.addTab(tab.newTab().setText(channelBeans.get(i).getName())); } } } @Override public void onClick(View view) { switch (view.getId()) { default: break; case R.id.imgbtn: ChannelActivity.startChannelActivity(MainActivity.this, channelBeans); break; } } //回传值 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ChannelActivity.REQUEST_CODE && resultCode == ChannelActivity.RESULT_CODE) { //得到栏目管理的结果 String json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY); //清空之前的栏目 tab.removeAllTabs(); //把新选的栏目结果更新到频道管理tab上 Gson gson = new GsonBuilder().create(); //进行Gson解析 Type type = new TypeToken<ArrayList<ChannelBean>>() { }.getType(); channelBeans = gson.fromJson(json, type); for (int i = 0; i < channelBeans.size(); i++) { if (channelBeans.get(i).isSelect()) { tab.addTab(tab.newTab().setText(channelBeans.get(i).getName())); } } } }
频道管理
最新推荐文章于 2019-01-16 19:55:59 发布
频道管理
1、首先在项目的build下注册
allprojects {
repositories {
jcenter()
//下面这句才是加上的,上面的自带 的
maven {url "https://jitpack.io"}
}
}
2、然后在app下的build中导入依赖
compile 'com.github.andyoom:draggrid:v1.0.1'
3.加入权限
<uses-permission android:name="android.permission.VIBRATE"/>
注意:
如果run之前程序报错如:Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
即依赖冲突,根据报错的详细信息查找冲突的类。
例如:
报错:Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations
这时候我们可以发现
com/google/gson/annotations/Expose.class
最后面有一个Expose.class
我们可以通过Search Everywhere去定位这个类(默认快捷键是双击shift)。
全局搜索相同类
看,通过搜索的确发现了两个一模一样的类,而且来自不同的依赖,而重复的类库正是gson。
然后我们只要删除一个架包或者依赖就可以了,最好是删除外面的单独架包,比如我们自己导入的Gson包,就可以解决问题了。