Skip to content

Commit 8b69f3e

Browse files
neel1998mariobehling
authored andcommitted
scroll added to create config layout (#1960)
1 parent d23f44e commit 8b69f3e

File tree

2 files changed

+93
-76
lines changed

2 files changed

+93
-76
lines changed

app/src/main/java/io/pslab/activity/CreateConfigActivity.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
import android.support.design.widget.Snackbar;
66
import android.support.v7.app.AppCompatActivity;
77
import android.support.v7.widget.Toolbar;
8-
import android.util.SparseBooleanArray;
8+
import android.view.Gravity;
99
import android.view.MenuItem;
1010
import android.view.View;
1111
import android.widget.AdapterView;
1212
import android.widget.ArrayAdapter;
1313
import android.widget.Button;
14+
import android.widget.CheckBox;
1415
import android.widget.EditText;
15-
import android.widget.ListView;
16+
import android.widget.LinearLayout;
1617
import android.widget.Spinner;
1718
import android.widget.Toast;
1819

@@ -30,20 +31,20 @@ public class CreateConfigActivity extends AppCompatActivity {
3031
private ArrayList<String> instrumentsList;
3132
private ArrayList<String[]> instrumentParamsList;
3233
private ArrayList<String[]> instrumentParamsListTitles;
33-
private ListView paramsListView;
3434
private int selectedItem = 0;
3535
private String intervalUnit = "sec";
3636
private EditText intervalEditText;
3737
private String interval;
3838
private View rootView;
39+
private LinearLayout paramsListContainer;
3940

4041
@Override
4142
protected void onCreate(Bundle savedInstanceState) {
4243
super.onCreate(savedInstanceState);
4344
setContentView(R.layout.activity_create_config);
4445
Toolbar toolbar = findViewById(R.id.toolbar);
4546
rootView = findViewById(R.id.create_config_root_view);
46-
paramsListView = findViewById(R.id.params_list);
47+
paramsListContainer = findViewById(R.id.params_list_container);
4748
Spinner selectInstrumentSpinner = findViewById(R.id.select_instrument_spinner);
4849
Spinner intervalUnitSpinner = findViewById(R.id.interval_unit_spinner);
4950
intervalEditText = findViewById(R.id.interval_edit_text);
@@ -95,10 +96,10 @@ public void onClick(View v) {
9596
if (interval.length() == 0) {
9697
Toast.makeText(CreateConfigActivity.this, getResources().getString(R.string.no_interval_message), Toast.LENGTH_SHORT).show();
9798
} else {
98-
SparseBooleanArray selectedParams = paramsListView.getCheckedItemPositions();
9999
ArrayList<String> selectedParamsList = new ArrayList<>();
100-
for (int i = 0; i < paramsListView.getCount(); i++) {
101-
if (selectedParams.get(i)) {
100+
for (int i = 0; i < paramsListContainer.getChildCount(); i ++) {
101+
CheckBox checkBox = (CheckBox) paramsListContainer.getChildAt(i);
102+
if (checkBox.isChecked()) {
102103
selectedParamsList.add(instrumentParamsList.get(selectedItem)[i]);
103104
}
104105
}
@@ -133,8 +134,17 @@ private void createArrayLists() {
133134
}
134135

135136
private void createCheckboxList() {
136-
paramsListView.setAdapter(new ArrayAdapter<String>(CreateConfigActivity.this, android.R.layout.simple_list_item_multiple_choice, instrumentParamsListTitles.get(selectedItem)));
137-
paramsListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
137+
paramsListContainer.removeAllViews();
138+
String[] params = instrumentParamsListTitles.get(selectedItem);
139+
for (int i = 0; i < params.length; i++){
140+
CheckBox checkBox = new CheckBox(CreateConfigActivity.this);
141+
checkBox.setText(params[i]);
142+
LinearLayout.LayoutParams checkBoxParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
143+
checkBoxParams.gravity = Gravity.CENTER_HORIZONTAL;
144+
checkBoxParams.setMargins(0,(int)getResources().getDimension(R.dimen.create_config_margin1),0,0);
145+
checkBox.setLayoutParams(checkBoxParams);
146+
paramsListContainer.addView(checkBox, i);
147+
}
138148
}
139149

140150
@Override

app/src/main/res/layout/activity_create_config.xml

Lines changed: 74 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -7,84 +7,91 @@
77
android:layout_height="match_parent"
88
tools:context=".activity.CreateConfigActivity">
99

10-
<RelativeLayout
10+
<ScrollView
1111
android:layout_width="match_parent"
1212
android:layout_height="wrap_content"
13-
android:layout_below="@+id/top_app_bar_layout"
14-
android:padding="@dimen/home_fragment_padding">
13+
android:layout_below="@+id/top_app_bar_layout">
1514

16-
<TextView
17-
android:id="@+id/select_instrument_title"
18-
style="@style/Base.TextAppearance.AppCompat.Title"
19-
android:layout_width="wrap_content"
15+
<RelativeLayout
16+
android:layout_width="match_parent"
2017
android:layout_height="wrap_content"
21-
android:layout_marginTop="@dimen/create_config_margin4"
22-
android:text="@string/select_instrument_title" />
18+
android:padding="@dimen/home_fragment_padding">
2319

24-
<android.support.v7.widget.AppCompatSpinner
25-
android:id="@+id/select_instrument_spinner"
26-
android:layout_width="wrap_content"
27-
android:layout_height="wrap_content"
28-
android:layout_toEndOf="@id/select_instrument_title" />
20+
<TextView
21+
android:id="@+id/select_instrument_title"
22+
style="@style/Base.TextAppearance.AppCompat.Title"
23+
android:layout_width="wrap_content"
24+
android:layout_height="wrap_content"
25+
android:layout_marginTop="@dimen/create_config_margin4"
26+
android:text="@string/select_instrument_title" />
2927

30-
<TextView
31-
android:id="@+id/time_interval_title"
32-
style="@style/Base.TextAppearance.AppCompat.Title"
33-
android:layout_width="wrap_content"
34-
android:layout_height="wrap_content"
35-
android:layout_below="@+id/select_instrument_title"
36-
android:layout_marginTop="@dimen/create_config_margin3"
37-
android:text="@string/time_interval_title" />
28+
<android.support.v7.widget.AppCompatSpinner
29+
android:id="@+id/select_instrument_spinner"
30+
android:layout_width="wrap_content"
31+
android:layout_height="wrap_content"
32+
android:layout_toEndOf="@id/select_instrument_title" />
3833

39-
<EditText
40-
android:id="@+id/interval_edit_text"
41-
android:layout_width="wrap_content"
42-
android:layout_height="wrap_content"
43-
android:layout_below="@id/select_instrument_title"
44-
android:layout_marginStart="@dimen/margin_btn"
45-
android:layout_marginTop="@dimen/create_config_margin1"
46-
android:layout_toEndOf="@id/time_interval_title"
47-
android:hint="@string/time_interval_hint"
48-
android:inputType="number" />
34+
<TextView
35+
android:id="@+id/time_interval_title"
36+
style="@style/Base.TextAppearance.AppCompat.Title"
37+
android:layout_width="wrap_content"
38+
android:layout_height="wrap_content"
39+
android:layout_below="@+id/select_instrument_title"
40+
android:layout_marginTop="@dimen/create_config_margin3"
41+
android:text="@string/time_interval_title" />
4942

50-
<android.support.v7.widget.AppCompatSpinner
51-
android:id="@+id/interval_unit_spinner"
52-
android:layout_width="wrap_content"
53-
android:layout_height="wrap_content"
54-
android:layout_below="@+id/select_instrument_title"
55-
android:layout_marginStart="@dimen/margin_btn"
56-
android:layout_marginTop="@dimen/create_config_margin1"
57-
android:layout_toEndOf="@+id/interval_edit_text" />
43+
<EditText
44+
android:id="@+id/interval_edit_text"
45+
android:layout_width="wrap_content"
46+
android:layout_height="wrap_content"
47+
android:layout_below="@id/select_instrument_title"
48+
android:layout_marginStart="@dimen/margin_btn"
49+
android:layout_marginTop="@dimen/create_config_margin1"
50+
android:layout_toEndOf="@id/time_interval_title"
51+
android:hint="@string/time_interval_hint"
52+
android:inputType="number" />
5853

59-
<TextView
60-
android:id="@+id/select_params_title"
61-
style="@style/Base.TextAppearance.AppCompat.Title"
62-
android:layout_width="wrap_content"
63-
android:layout_height="wrap_content"
64-
android:layout_below="@id/time_interval_title"
65-
android:layout_centerHorizontal="true"
66-
android:layout_marginTop="@dimen/create_config_margin2"
67-
android:text="@string/select_params_title" />
54+
<android.support.v7.widget.AppCompatSpinner
55+
android:id="@+id/interval_unit_spinner"
56+
android:layout_width="wrap_content"
57+
android:layout_height="wrap_content"
58+
android:layout_below="@+id/select_instrument_title"
59+
android:layout_marginStart="@dimen/margin_btn"
60+
android:layout_marginTop="@dimen/create_config_margin1"
61+
android:layout_toEndOf="@+id/interval_edit_text" />
6862

69-
<ListView
70-
android:id="@+id/params_list"
71-
android:layout_width="match_parent"
72-
android:layout_height="wrap_content"
73-
android:layout_above="@+id/create_config_btn"
74-
android:layout_below="@+id/select_params_title"
75-
android:layout_margin="@dimen/create_config_margin1" />
63+
<TextView
64+
android:id="@+id/select_params_title"
65+
style="@style/Base.TextAppearance.AppCompat.Title"
66+
android:layout_width="wrap_content"
67+
android:layout_height="wrap_content"
68+
android:layout_below="@id/time_interval_title"
69+
android:layout_centerHorizontal="true"
70+
android:layout_marginTop="@dimen/create_config_margin2"
71+
android:text="@string/select_params_title" />
7672

77-
<Button
78-
android:id="@+id/create_config_btn"
79-
android:layout_width="wrap_content"
80-
android:layout_height="wrap_content"
81-
android:layout_alignParentBottom="true"
82-
android:layout_centerHorizontal="true"
83-
android:background="@color/colorPrimary"
84-
android:padding="@dimen/margin_btn"
85-
android:text="@string/create_config_btn_text"
86-
android:textColor="@color/white" />
87-
</RelativeLayout>
73+
<LinearLayout
74+
android:id="@+id/params_list_container"
75+
android:layout_width="match_parent"
76+
android:layout_height="wrap_content"
77+
android:layout_below="@+id/select_params_title"
78+
android:orientation="vertical">
79+
</LinearLayout>
80+
81+
<Button
82+
android:id="@+id/create_config_btn"
83+
android:layout_width="wrap_content"
84+
android:layout_height="wrap_content"
85+
android:layout_below="@+id/params_list_container"
86+
android:layout_centerHorizontal="true"
87+
android:background="@drawable/btn_back_rounded"
88+
android:padding="@dimen/margin_btn"
89+
android:layout_marginTop="@dimen/create_config_margin2"
90+
android:text="@string/create_config_btn_text"
91+
android:textColor="@color/white" />
92+
</RelativeLayout>
93+
94+
</ScrollView>
8895

8996
<android.support.design.widget.AppBarLayout
9097
android:id="@+id/top_app_bar_layout"

0 commit comments

Comments
 (0)