频道管理


                                    频道管理
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"/>
 
 

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())); } } } }

注意:
如果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包,就可以解决问题了。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值