1:导入依赖到自己工程下的gradle
compile 'com.github.andyoom:draggrid:v1.0.1'
2.在项目的build.gradle中添加
allprojects {
repositories {
jcenter()
//下面这句才是加上的,上面的自带 的
maven {url "https://jitpack.io"}
}
}
3.权限
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 震动权限 -->
<uses-permission android:name="android.permission.VIBRATE"/>
4:在Activity下主要代码:
//按钮点击跳转到控制界面
public void button(View view){
if (list ==null){//判断集合中是否已有数据,没有则创建
list =new ArrayList<>();
//第一个是显示的条目,第二个参数是否显示
list.add(new ChannelBean("热点",true));
list.add(new ChannelBean("军事",true));
list.add(new ChannelBean("八卦",true));
list.add(new ChannelBean("游戏",true));
list.add(new ChannelBean("宠物",true));
list.add(new ChannelBean("汽车",false));
list.add(new ChannelBean("热卖",false));
list.add(new ChannelBean("外卖",false));
list.add(new ChannelBean("条目1",false));
list.add(new ChannelBean("条目2",false));
list.add(new ChannelBean("条目3",false));
list.add(new ChannelBean("条目4",false));
ChannelActivity.startChannelActivity(MainActivity.this, list);
}else if (jsonStr!=null){//当判断保存的字符串不为空的时候,直接加载已经有了的字符串
ChannelActivity.startChannelActivity(MainActivity.this,jsonStr);
}
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE) {
jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
} }
上方参数中显示为true,将会在频道管理中,我的频道里。
显示为false的将会在其他频道显示
//////////////////////////////////////////////////////////////////////////
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button mDealChannel;
private TabLayout tabLay;
private ArrayList<ChannelBean> channels;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mDealChannel = (Button) findViewById(R.id.dealChannel);
tabLay = (TabLayout) findViewById(R.id.tabLay);
mDealChannel.setOnClickListener(this);
//准备频道数据
channels = new ArrayList<ChannelBean>();
channels.add(new ChannelBean("热点", true));
channels.add(new ChannelBean("军事", true));
channels.add(new ChannelBean("八卦", true));
channels.add(new ChannelBean("游戏", true));
channels.add(new ChannelBean("宠物", true));
channels.add(new ChannelBean("汽车", true));
channels.add(new ChannelBean("热卖", true));
channels.add(new ChannelBean("外卖", true));
channels.add(new ChannelBean("太阳花", true));
channels.add(new ChannelBean("九三", false));
channels.add(new ChannelBean("八嘎", false));
channels.add(new ChannelBean("色昂", false));
//设置默认频道
for (ChannelBean bean : channels) {
if (bean.isSelect()) {//true表示频道被选中
tabLay.addTab(tabLay.newTab().setText(bean.getName()));
}
}
}
@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 jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Log.d("main", jsonStr);
//解析jsonStr,遍历得到选中的频道,配置给tablayout
Gson gson = new Gson();
//解析得到频道处理的结果集合
channels = gson.fromJson(jsonStr, new TypeToken<ArrayList<ChannelBean>>() {
}.getType());
//遍历集合得到每一个频道,通过频道的状态,把频道添加到tablayout中
tabLay.removeAllTabs();//清空所有旧的频道
for (ChannelBean bean : channels) {
if (bean.isSelect()) {//true表示频道被选中
tabLay.addTab(tabLay.newTab().setText(bean.getName()));
}
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.dealChannel:
//跳转到频道管理界面,进行频道管理,用的是上面准备的数据
ChannelActivity.startChannelActivity(this, channels);
break;
}
}
}