Как сохранить данные из списка радиокнопок в SQLite? - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу создать приложение, которое использовалось для посещения.Но я не могу сохранить данные, которые поступают из переключателя списка просмотра, в БД SQLite.Я уже сделал переднюю сторону.Мне нужна помощь в функции класса databasehelper.java для сохранения в таблице БД.

Я хочу сохранить результат переключателя всех представлений списка при нажатии кнопки сохранения.Я получил список имен из SQLite, используя класс .java extends BaseAdapter.наконец, мне нужно сохранить результат и дату переключателя посещаемости в TABLE_ATTENDANCE.

Я уже получил список имен из sqlite DB.затем я хочу сохранить радио-кнопку посещаемости для каждого имени в просмотре списка.я сделал переднюю часть по файлам activity_take_attendance.xml и take_att.xml.

это - activity_take_attendance.xml `

<ListView
    android:id="@+id/attlv"
    android:layout_width="match_parent"
    android:layout_height="554dp">
</ListView>

<Button
    android:id="@+id/btnstore"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="10dp"
    android:text="Store" />`

, а take_att.xml -

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:paddingLeft="10dp"
        android:text="Name" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="attendance"
        android:layout_marginLeft="20dp"
        android:id="@+id/attendance"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <RadioGroup
        android:id="@+id/radioAttendance"
        android:layout_width="match_parent"
        android:layout_height="46dp"
        android:layout_marginLeft="20dp"
        android:baselineAligned="false"
        android:orientation="horizontal"
        android:layout_below="@+id/attendance">

        <RadioButton
            android:id="@+id/present"
            android:layout_width="95dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Present"/>

        <RadioButton
            android:id="@+id/absent"
            android:layout_width="95dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Absent" />

        <RadioButton
            android:id="@+id/late"
            android:layout_width="95dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:baselineAligned="false"
            android:text="Late" />
    </RadioGroup>


</LinearLayout>
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:background="@color/colorAccent"/>

этоэто код класса Take_Attendance.java.

btnStore.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View v) {

            int selectedId = radioAttendance.getCheckedRadioButtonId();
            RadioButton radioButton = (RadioButton) findViewById(selectedId);
            String attendance = (String) radioButton.getText();

            databaseHelper.addAttendance(attendance, etdate.getText().toString());
            etname.setText("");
            etdate.setText("Date");
            radioAttendance.setOnCheckedChangeListener(null);

            //Toast.makeText(MainActivity.this,  attendance, Toast.LENGTH_SHORT).show();

            Toast.makeText(Take_Attendance.this, "Stored Successfullyyy!", Toast.LENGTH_SHORT).show();
        }
    });

и класс базы данных helper.java

public long addAttendance(String date, String attendance) {
    SQLiteDatabase db = this.getWritableDatabase();
    // Creating content values
    ContentValues values = new ContentValues();
    values.put(KEY_DATE, date);
    values.put(KEY_ATTENDANCE, attendance);

    long insert = db.insert(TABLE_ATTENDANCE, null, values);

    return insert;
}

Я знаю, что описанные выше методы не могут сохранить массив данных списка.но мне нужна функция, чтобы сохранить все результаты радиокнопок для каждого имени в списке при нажатии кнопки "Сохранить".

1 Ответ

0 голосов
/ 20 сентября 2019

попробуй его:

    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
           @Override
           public void onCheckedChanged(RadioGroup group, int checkedId)
           {
               radioButton = (RadioButton) findViewById(checkedId);
               String attendance = (String) radioButton.getText().toString();
              databaseHelper.addAttendance(attendance, etdate.getText().toString());
              etname.setText("");
              etdate.setText("Date");

           }
       }
       );
.
.
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...