Skip to content

Commit 99cee3e

Browse files
MultiSelection
1 parent 5ac7ac9 commit 99cee3e

File tree

5 files changed

+54
-34
lines changed

5 files changed

+54
-34
lines changed

selectionalertdialog/src/main/java/com/drapps/selectionalertdialog/MulitpleSelectionAdapter.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.drapps.selectionalertdialog;
22

33
import android.content.Context;
4+
import android.content.res.ColorStateList;
45
import android.view.LayoutInflater;
56
import android.view.View;
67
import android.view.ViewGroup;
@@ -16,25 +17,27 @@ public class MulitpleSelectionAdapter extends RecyclerView.Adapter<MulitpleSelec
1617
private List<MultiSelection> dataList;
1718
Context context;
1819
List<MultiSelection> currentField;
19-
String assetsTitle = "";
20-
20+
String selectedItems = "";
21+
int color;
2122
public class MulitpleSelectionHolder extends RecyclerView.ViewHolder {
2223

2324
public CheckBox checkBox;
25+
View line;
2426

2527
MulitpleSelectionHolder(View view) {
2628
super(view);
2729
checkBox = view.findViewById(R.id.checkbox_dialog);
28-
30+
line = view.findViewById(R.id.linear_multi_dialog);
2931
}
3032
}
3133

3234

33-
public MulitpleSelectionAdapter(List<MultiSelection> contentList, String title, Context context) {
35+
public MulitpleSelectionAdapter(List<MultiSelection> contentList, String title, Context context,int checkBoxColor) {
3436
this.context = context;
3537
this.dataList = contentList;
36-
this.assetsTitle = title;
37-
checkExist(assetsTitle);
38+
this.color = checkBoxColor;
39+
this.selectedItems = title;
40+
checkExist(selectedItems);
3841

3942
}
4043

@@ -48,7 +51,14 @@ public MulitpleSelectionAdapter.MulitpleSelectionHolder onCreateViewHolder(ViewG
4851

4952
public void onBindViewHolder(final MulitpleSelectionAdapter.MulitpleSelectionHolder holder, final int position) {
5053
holder.checkBox.setText(dataList.get(position).getTitle());
54+
if (color != 0) {
55+
try {
56+
holder.checkBox.setButtonTintList(ColorStateList.valueOf(color));
57+
holder.line.setBackgroundColor(color);
58+
} catch (Exception e) {
5159

60+
}
61+
}
5262

5363
holder.setIsRecyclable(false);
5464
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@@ -76,8 +86,8 @@ public int getItemCount() {
7686
public boolean checkExist(String dataString) {
7787
if (dataList != null && dataList.size() > 0) {
7888
for (int i = 0; i < dataList.size(); i++) {
79-
List<String> assets = new ArrayList<String>(Arrays.asList(assetsTitle.split(",")));
80-
if (assets != null && assets.size() > 0 && !assetsTitle.equals("")) {
89+
List<String> assets = new ArrayList<String>(Arrays.asList(selectedItems.split(",")));
90+
if (assets != null && assets.size() > 0 && !selectedItems.equals("")) {
8191
for (int j = 0; j < assets.size(); j++) {
8292
if (dataList.get(i).getTitle().equals(assets.get(j))) {
8393
dataList.get(i).setCheck(true);

selectionalertdialog/src/main/java/com/drapps/selectionalertdialog/MultiSelectionDialog.java

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
import android.content.Context;
55
import android.content.res.ColorStateList;
66
import android.os.Bundle;
7-
import android.text.Editable;
8-
import android.text.TextWatcher;
97
import android.view.LayoutInflater;
108
import android.view.View;
11-
import android.widget.EditText;
129
import android.widget.ImageView;
1310
import android.widget.LinearLayout;
1411
import android.widget.TextView;
1512
import android.widget.Toast;
1613

14+
import com.drapps.selectionalertdialog.MulitpleSelectionAdapter;
15+
import com.drapps.selectionalertdialog.MultiSelection;
16+
import com.drapps.selectionalertdialog.MultiSelectionListener;
17+
import com.drapps.selectionalertdialog.R;
18+
1719
import java.util.ArrayList;
1820

1921
import androidx.annotation.Nullable;
2022
import androidx.appcompat.app.AppCompatActivity;
21-
import androidx.core.view.ViewCompat;
2223
import androidx.recyclerview.widget.LinearLayoutManager;
2324
import androidx.recyclerview.widget.RecyclerView;
2425

@@ -31,7 +32,7 @@ public class MultiSelectionDialog extends AppCompatActivity {
3132
private ArrayList<MultiSelection> temp_data_list = new ArrayList<>();
3233
private String headerTitle = "Select";
3334
private Boolean isSearchEnabled = false;
34-
SingleSelectionAdapter dialogAdapter;
35+
MulitpleSelectionAdapter dialogAdapter;
3536
private String currentField = "", currentValue = "", currentPosition = "", tag = "", hintText = "Search here";
3637
private int headerColor;
3738
MultiSelectionListener multiSelectionListener;
@@ -56,8 +57,10 @@ public void setContent(ArrayList<String> contentProvide) {
5657

5758
if (list != null && list.size() > 0) {
5859
for (int i = 0; i < list.size(); i++) {
59-
multiList.get(i).setTitle(list.get(i));
60-
temp_data_list.get(i).setTitle(list.get(i));
60+
MultiSelection multiSelection = new MultiSelection();
61+
multiSelection.setTitle(list.get(i));
62+
multiList.add(multiSelection);
63+
temp_data_list.add(multiSelection);
6164
}
6265
}
6366

@@ -71,16 +74,16 @@ public void setTitle(String mTitle) {
7174
}
7275
}
7376

74-
public void enableSearch(Boolean value, String hint) {
75-
isSearchEnabled = value;
76-
hintText = hint;
77-
}
77+
// public void enableSearch(Boolean value, String hint) {
78+
// isSearchEnabled = value;
79+
// hintText = hint;
80+
// }
7881

7982
public void setColor(int color) {
8083
headerColor = color;
8184
}
8285

83-
public void setSelectedField(String selectedField) {
86+
public void setSelectedFields(String selectedField) {
8487
currentField = selectedField;
8588
}
8689

@@ -140,14 +143,16 @@ public void onItemLongClick(View view, int position) {
140143
public void onClick(View view) {
141144
String getAssetsValue = "";
142145
String assetValue = "";
146+
ArrayList<String> temp_string_list = new ArrayList<>();
143147
if (multiList != null && multiList.size() > 0) {
144148
for (int i = 0; i < multiList.size(); i++) {
145149
if (multiList.get(i).getCheck()) {
150+
temp_string_list.add(multiList.get(i).getTitle());
146151
getAssetsValue += multiList.get(i).getTitle() + ",";
147152
assetValue = getAssetsValue.substring(0, getAssetsValue.length() - 1);
148153
}
149154
}
150-
multiSelectionListener.onMultiDialogItemsSelected(assetValue, tag);
155+
multiSelectionListener.onMultiDialogItemsSelected(assetValue, tag,temp_string_list);
151156
}
152157

153158
dialog.dismiss();
@@ -185,14 +190,15 @@ public void onClick(View view) {
185190
// }
186191
//// });
187192
//
188-
// if (list != null && list.size() > 0) {
189-
// dialogAdapter = new SingleSelectionAdapter(list, context, currentField, headerColor);
190-
// recyclerView.setAdapter(dialogAdapter);
191-
// dialog.show();
192-
// } else {
193-
// Toast.makeText(context, "List is empty", Toast.LENGTH_SHORT).show();
194-
// }
193+
if (list != null && list.size() > 0) {
194+
dialogAdapter = new MulitpleSelectionAdapter(multiList,currentField,context,headerColor);
195+
recyclerView.setAdapter(dialogAdapter);
196+
dialog.show();
197+
} else {
198+
Toast.makeText(context, "List is empty", Toast.LENGTH_SHORT).show();
199+
}
195200

201+
dialog.show();
196202
} catch (Exception e) {
197203
e.printStackTrace();
198204
}

selectionalertdialog/src/main/java/com/drapps/selectionalertdialog/MultiSelectionListener.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.drapps.selectionalertdialog;
22

3+
4+
import java.util.ArrayList;
5+
36
public interface MultiSelectionListener {
47
// you can define any parameter as per your requirement
5-
public void onMultiDialogItemsSelected(String s, String tag);
8+
public void onMultiDialogItemsSelected(String s, String tag, ArrayList<String> selectedItemList);
69

710
public void onMultiDialogError(String error, String tag);
811
}

selectionalertdialog/src/main/java/com/drapps/selectionalertdialog/SingleSelectionAdapter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
public class SingleSelectionAdapter extends RecyclerView.Adapter<SingleSelectionAdapter.SingleSelectionHolder> {
1616
private List<String> dataList = new ArrayList<>();
17-
Context context;
18-
String currentField;
19-
int color;
17+
private Context context;
18+
private String currentField;
19+
private int color;
2020

2121
public class SingleSelectionHolder extends RecyclerView.ViewHolder {
2222

@@ -31,8 +31,8 @@ public class SingleSelectionHolder extends RecyclerView.ViewHolder {
3131
}
3232

3333

34-
public SingleSelectionAdapter(ArrayList<String> contentList, Context context, String currentField, int radioColor) {
35-
this.context = context;
34+
public SingleSelectionAdapter(ArrayList<String> contentList, Context mContext, String currentField, int radioColor) {
35+
this.context = mContext;
3636
this.dataList = contentList;
3737
this.currentField = currentField;
3838
this.color = radioColor;

selectionalertdialog/src/main/res/layout/layout_multi_selection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
android:padding="2dp"
1414
/>
1515
<View
16+
android:id="@+id/linear_multi_dialog"
1617
android:layout_width="match_parent"
1718
android:layout_height="1dp"
1819
android:layout_marginTop="2dp"

0 commit comments

Comments
 (0)