Skip to content

Commit e78a552

Browse files
committed
去掉Selectable和SelectableModel
1 parent c53babb commit e78a552

File tree

4 files changed

+23
-61
lines changed

4 files changed

+23
-61
lines changed

app/src/main/java/com/sd/selectmanager/DataModel.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,8 @@
11
package com.sd.selectmanager;
22

3-
import com.sd.lib.selectmanager.SelectManager;
4-
5-
public class DataModel implements SelectManager.Selectable
3+
public class DataModel
64
{
75
public String name;
8-
public boolean selected;
9-
10-
@Override
11-
public boolean isSelected()
12-
{
13-
return selected;
14-
}
15-
16-
@Override
17-
public void setSelected(boolean selected)
18-
{
19-
this.selected = selected;
20-
}
216

227
@Override
238
public String toString()

app/src/main/java/com/sd/selectmanager/ListDemoAdapter.java

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ public class ListDemoAdapter extends FSimpleAdapter<DataModel>
1818

1919
public ListDemoAdapter()
2020
{
21-
/**
22-
* 设置多选模式
23-
*/
24-
getSelectManager().setMode(SelectManager.Mode.MULTI);
25-
2621
/**
2722
* adapter 数据变化监听
2823
*/
@@ -76,16 +71,31 @@ public SelectManager<DataModel> getSelectManager()
7671
if (mSelectManager == null)
7772
{
7873
mSelectManager = new FSelectManager<>();
79-
mSelectManager.addCallback(new SelectManager.Callback<DataModel>()
74+
/**
75+
* 设置多选模式
76+
*/
77+
mSelectManager.setMode(SelectManager.Mode.MULTI);
78+
/**
79+
* 设置item初始化回调
80+
*/
81+
mSelectManager.setOnItemInitCallback(new SelectManager.OnItemInitCallback<DataModel>()
8082
{
8183
@Override
82-
public void onSelectedChanged(boolean selected, DataModel item)
84+
public void onInitItem(DataModel item)
8385
{
8486
/**
85-
* 由于item实现了SelectManager.Selectable接口,所以这一句不用执行
87+
* 假如添加的item有初始选中状态,则要在此同步选中状态到SelectManager中:mSelectManager.setSelected(item, selected);
8688
*/
87-
// item.setSelected(selected);
88-
89+
}
90+
});
91+
/**
92+
* 设置选中变化回调
93+
*/
94+
mSelectManager.addCallback(new SelectManager.Callback<DataModel>()
95+
{
96+
@Override
97+
public void onSelectedChanged(boolean selected, DataModel item)
98+
{
8999
/**
90100
* 选中状态变化通知刷新adapter
91101
*/
@@ -102,7 +112,7 @@ public void onBindData(int position, View convertView, ViewGroup parent, final D
102112
Button button = get(R.id.btn, convertView);
103113
button.setText(model.name);
104114

105-
if (model.selected)
115+
if (getSelectManager().isSelected(model))
106116
button.setTextColor(Color.RED);
107117
else
108118
button.setTextColor(Color.BLACK);

lib/src/main/java/com/sd/lib/selectmanager/FSelectManager.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -310,10 +310,7 @@ private void notifySelected(T item)
310310
*/
311311
protected void onSelectedChanged(boolean selected, T item)
312312
{
313-
if (item instanceof Selectable)
314-
{
315-
((Selectable) item).setSelected(selected);
316-
}
313+
317314
}
318315

319316
//---------- data start ----------
@@ -426,12 +423,6 @@ public final void updateItem(int index, T item)
426423

427424
private void initItem(T item)
428425
{
429-
if (item instanceof Selectable)
430-
{
431-
final boolean selected = ((Selectable) item).isSelected();
432-
setSelectedInternal(item, selected);
433-
}
434-
435426
onInitItem(item);
436427

437428
if (mOnItemInitCallback != null)

lib/src/main/java/com/sd/lib/selectmanager/SelectManager.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -236,28 +236,4 @@ interface OnItemInitCallback<T>
236236
{
237237
void onInitItem(T item);
238238
}
239-
240-
interface Selectable
241-
{
242-
boolean isSelected();
243-
244-
void setSelected(boolean selected);
245-
}
246-
247-
class SelectableModel implements Selectable
248-
{
249-
private boolean selected;
250-
251-
@Override
252-
public boolean isSelected()
253-
{
254-
return selected;
255-
}
256-
257-
@Override
258-
public void setSelected(boolean selected)
259-
{
260-
this.selected = selected;
261-
}
262-
}
263239
}

0 commit comments

Comments
 (0)