1. 程式人生 > >依賴頻道管理

依賴頻道管理

頻道管理
1、首先在專案的build下注冊
allprojects {
repositories {
jcenter()
//下面這句才是加上的,上面的自帶 的
maven {url “https://jitpack.io”}
}

}
2、然後在app下的build中匯入依賴
compile ‘com.github.andyoom:draggrid:v1.0.1’

2.1、因為頻道是點選增刪,長按拖拽,所以需要在AndroidMainfest.xml中新增震動許可權

3、然後在main類中就可以使用了,只要用集合將資料新增就可以了

public class MainActivity extends AppCompatActivity {
private List list;
private String jsonStr;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);//找到按鈕的控制元件
button.setOnClickListener(this);//設定點選事件
}

4、在點選事件裡做邏輯處理
//按鈕點選跳轉到控制介面
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
if (list==null){//判斷集合中是否已有資料,沒有則建立
list= new ArrayList<>();
//第一個是顯示的條目,第二個引數是否顯示
this.list.add(new ChannelBean(“熱點”,true));
this.list.add(new ChannelBean(“軍事”,true));
this.list.add(new ChannelBean(“八卦”,true));
this.list.add(new ChannelBean(“遊戲”,true));
this.list.add(new ChannelBean(“寵物”,true));
this.list.add(new ChannelBean(“汽車”,false));
this.list.add(new ChannelBean(“熱賣”,false));
this.list.add(new ChannelBean(“外賣”,false));
this.list.add(new ChannelBean(“太陽花”,false));
this.list.add(new ChannelBean(“九三”,false));
this.list.add(new ChannelBean(“八嘎”,false));
this.list.add(new ChannelBean(“色昂”,false));
ChannelActivity.startChannelActivity(this, this.list);
}else if (jsonStr!=null){//當判斷儲存的字串不為空的時候,直接載入已經有了的字串
ChannelActivity.startChannelActivity(this,jsonStr);
}
break;
}
}

//如果點選無效果則刪除一下5此段程式碼
5、然後再回調一下
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCodeChannelActivity.REQUEST_CODE&&resultCodeChannelActivity.RESULT_CODE) {
jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
} }
}

注意:
如果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包,就可以解決問題了。