Converted eventType from listview to radiogroup

This commit is contained in:
Graham Jones
2022-01-17 19:56:40 +00:00
parent ff9bb06241
commit 307a268c4a
2 changed files with 60 additions and 22 deletions

View File

@@ -1,22 +1,17 @@
package uk.org.openseizuredetector; package uk.org.openseizuredetector;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SimpleAdapter; import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView; import android.widget.TextView;
import org.json.JSONArray; import org.json.JSONArray;
@@ -44,7 +39,8 @@ public class EditEventActivity extends AppCompatActivity
private Long mEventId; private Long mEventId;
private String mEventNotes = ""; private String mEventNotes = "";
private Date mEventDateTime; private Date mEventDateTime;
private RadioGroup mEventTypeRg;
private boolean mEventTypesListChanged = false;
@Override @Override
@@ -65,9 +61,11 @@ public class EditEventActivity extends AppCompatActivity
Button OKBtn = (Button) findViewById(R.id.OKBtn); Button OKBtn = (Button) findViewById(R.id.OKBtn);
OKBtn.setOnClickListener(onOK); OKBtn.setOnClickListener(onOK);
mEventTypeRg = findViewById(R.id.eventTypeRg);
mEventTypeRg.setOnCheckedChangeListener(onEventTypeChange);
ListView lv; ListView lv;
lv = (ListView) findViewById(R.id.eventTypeLv); //lv = (ListView) findViewById(R.id.eventTypeLv);
lv.setOnItemClickListener(onEventTypeClick); //lv.setOnItemClickListener(onEventTypeClick);
lv = (ListView) findViewById(R.id.eventSubTypeLv); lv = (ListView) findViewById(R.id.eventSubTypeLv);
lv.setOnItemClickListener(onEventSubTypeClick); lv.setOnItemClickListener(onEventSubTypeClick);
@@ -99,6 +97,7 @@ public class EditEventActivity extends AppCompatActivity
eventSubtypesList.add(eventSubTypes.getString(i)); eventSubtypesList.add(eventSubTypes.getString(i));
} }
mEventSubTypesHashMap.put(key, eventSubtypesList); mEventSubTypesHashMap.put(key, eventSubtypesList);
mEventTypesListChanged = true;
} catch (JSONException e) { } catch (JSONException e) {
Log.e(TAG, "onCreate(getEventTypes Callback: Error parsing JSONObject" + e.getMessage() + e.toString()); Log.e(TAG, "onCreate(getEventTypes Callback: Error parsing JSONObject" + e.getMessage() + e.toString());
} }
@@ -133,13 +132,35 @@ public class EditEventActivity extends AppCompatActivity
TextView tv; TextView tv;
// tv = (TextView) findViewById(R.id.tokenTv); // tv = (TextView) findViewById(R.id.tokenTv);
//tv.setText("Logged in with Token:" + storedAuthToken); //tv.setText("Logged in with Token:" + storedAuthToken);
if (mEventTypesList != null) {
// Regenerate event type button group if necessary
if (mEventTypesList != null && mEventTypesListChanged) {
Log.v(TAG, "updateUi: " + mEventTypesList.toString()); Log.v(TAG, "updateUi: " + mEventTypesList.toString());
ListView lv = (ListView) findViewById(R.id.eventTypeLv); //ListView lv = (ListView) findViewById(R.id.eventTypeLv);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.event_type_list_item, R.id.eventTypeTv, mEventTypesList); // R.layout.event_type_list_item, R.id.eventTypeTv, mEventTypesList);
lv.setAdapter(adapter); //lv.setAdapter(adapter);
mEventTypeRg.removeAllViews();
for (String eventTypeStr : mEventTypesList) {
RadioButton b = new RadioButton(this);
b.setText(eventTypeStr);
mEventTypeRg.addView(b);
} }
mEventTypesListChanged = false;
}
// Check the correct button in the event type group
RadioButton b;
for (int index = 0; index < mEventTypeRg.getChildCount(); index++) {
b = (RadioButton) mEventTypeRg.getChildAt(index);
String buttonText = b.getText().toString();
if (buttonText.equals(mEventTypeStr)) {
Log.v(TAG, "updateUi - selecting button " + mEventTypeStr);
b.setChecked(true);
}
}
if (mEventSubTypesHashMap != null) { if (mEventSubTypesHashMap != null) {
if (mEventTypeStr != null) { if (mEventTypeStr != null) {
// based on https://androidexample.com/create-a-simple-listview // based on https://androidexample.com/create-a-simple-listview
@@ -221,5 +242,16 @@ public class EditEventActivity extends AppCompatActivity
//setSubTypesLV(selectedEventType); //setSubTypesLV(selectedEventType);
} }
}; };
RadioGroup.OnCheckedChangeListener onEventTypeChange =
new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Log.v(TAG,"onEventTypeChange() - id="+checkedId);
RadioButton b = (RadioButton)findViewById(group.getCheckedRadioButtonId());
String selectedEventType = b.getText().toString();
mEventTypeStr = selectedEventType;
updateUi();
}
};
} }

View File

@@ -48,12 +48,18 @@
android:text="event_type" android:text="event_type"
android:id="@+id/eventTypeTv"/> android:id="@+id/eventTypeTv"/>
</LinearLayout> </LinearLayout>
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/eventTypeRg">
<ListView </RadioGroup>
<!--<ListView
android:id="@+id/eventTypeLv" android:id="@+id/eventTypeLv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="150dp" android:layout_height="150dp"
android:layout_marginTop="0dp" /> android:layout_marginTop="0dp" />
-->
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"