0

我是 android studio 的新手,我尝试了所有可能的选项,但无法理解为什么当我从一个屏幕移动到另一个屏幕时,当我回到上一个屏幕时复选框会被取消选中。

我在onsavedInstanceStateonRestoreInstanceState中遗漏了一些东西

下面是我的Java代码

package com.example.qualitycheckstation;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Qc2_1_1 extends AppCompatActivity {
CheckBox qc2_1cb1a,qc2_1cb1b,qc2_1cb1c, qc2_1cb2a,qc2_1cb2b,qc2_1cb2c ,qc2_1cb3a,qc2_1cb3b, qc2_1cb3c;
TextView date2_1_1, time2_1_1;
Button  next2_1_1,back2_1_1;
Boolean myBoolean1,myBoolean2,myBoolean3,myBoolean4,myBoolean5,myBoolean6,myBoolean7,myBoolean8,myBoolean9;

private static String pr2_1_1,pr2_1_2,pr2_1_3;
private boolean myBoolean = false;
public static String getPr2_1_1 (){
    return pr2_1_1;
}
public static String getPr2_1_2 (){
        return pr2_1_2;
}
public static String getPr2_1_3(){
    return pr2_1_3;
}


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_qc2_1_1);

        date2_1_1= findViewById(R.id.date2_1_1);
        time2_1_1 = findViewById(R.id.time2_1_1);

        Calendar calendar= Calendar.getInstance();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
        String date = simpleDateFormat.format(calendar.getTime());
        date2_1_1.setText(date);
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("hh:mm:ss a");
        String time0 = simpleDateFormat1.format(calendar.getTime());
        time2_1_1.setText(time0);

        qc2_1cb1a = findViewById(R.id.qc2_1cb1a);
        qc2_1cb1b = findViewById(R.id.qc2_1cb1b);
        qc2_1cb1c = findViewById(R.id.qc2_1cb1c);
        qc2_1cb2a = findViewById(R.id.qc2_1cb2a);
        qc2_1cb2b = findViewById(R.id.qc2_1cb2b);
        qc2_1cb2c = findViewById(R.id.qc2_1cb2c);
        qc2_1cb3a = findViewById(R.id.qc2_1cb3a);
        qc2_1cb3b = findViewById(R.id.qc2_1cb3b);
        qc2_1cb3c = findViewById(R.id.qc2_1cb3c);

        next2_1_1 = findViewById(R.id.next2_1_1);
        back2_1_1 = findViewById(R.id.back2_1_1);

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

                if((qc2_1cb1a.isChecked())){
                    pr2_1_1 = "O";
                }
                else if((qc2_1cb1b.isChecked())){
                    pr2_1_1 = "X";
                }
                else if((qc2_1cb1c.isChecked())){
                    pr2_1_1 = "N/A";
                }
                if((qc2_1cb2a.isChecked())){
                    pr2_1_2 = "O";
                }
                else if((qc2_1cb2b.isChecked())){
                    pr2_1_2 = "X";
                }
                else if((qc2_1cb2c.isChecked())){
                    pr2_1_2 = "N/A";
                }
                if((qc2_1cb3a.isChecked())){
                    pr2_1_3 = "O";
                }
                else if((qc2_1cb3b.isChecked())){
                    pr2_1_3 = "X";
                }
                else if((qc2_1cb3c.isChecked())){
                    pr2_1_3 = "N/A";
                }

                if (
                        ((qc2_1cb1a.isChecked()) && (qc2_1cb1b.isChecked())) || ((qc2_1cb1b.isChecked()) && (qc2_1cb1c.isChecked())) || ((qc2_1cb1a.isChecked()) && (qc2_1cb1c.isChecked())) ||
                                ((qc2_1cb2a.isChecked()) && (qc2_1cb2b.isChecked())) || ((qc2_1cb2b.isChecked()) && (qc2_1cb2c.isChecked())) || ((qc2_1cb2a.isChecked()) && (qc2_1cb2c.isChecked())) ||
                                        ((qc2_1cb3a.isChecked()) && (qc2_1cb3b.isChecked())) || ((qc2_1cb3b.isChecked()) && (qc2_1cb3c.isChecked())) || ((qc2_1cb3a.isChecked()) && (qc2_1cb3c.isChecked()))
                                )
                { { Toast.makeText(getApplicationContext(),"Select Either OK, NG or N/A", Toast.LENGTH_SHORT).show(); }}
                else if (
                        ((qc2_1cb1a.isChecked()) || (qc2_1cb1b.isChecked())  || (qc2_1cb1c.isChecked())) &&
                        ((qc2_1cb2a.isChecked()) || (qc2_1cb2b.isChecked())  || (qc2_1cb2c.isChecked()))&&
                        ((qc2_1cb3a.isChecked()) || (qc2_1cb3b.isChecked())  || (qc2_1cb3c.isChecked()))
                )
                { Intent intent = new Intent(Qc2_1_1.this, Qc2_1_2.class);startActivity(intent); }
                else { Toast.makeText(getApplicationContext(),"Select all parameters", Toast.LENGTH_SHORT).show(); }
            }
        });
        back2_1_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Qc2_1_1.this, Qc2.class);
                startActivity(intent);
            }
        });


    }

    @Override
    protected void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putBoolean("qc2_1cb1a", qc2_1cb1a.isChecked());
        outState.putBoolean("qc2_1cb1b", qc2_1cb1b.isChecked());
        outState.putBoolean("qc2_1cb1c", qc2_1cb1c.isChecked());
        outState.putBoolean("qc2_1cb2a", qc2_1cb2a.isChecked());
        outState.putBoolean("qc2_1cb2b", qc2_1cb2b.isChecked());
        outState.putBoolean("qc2_1cb2c", qc2_1cb2c.isChecked());
        outState.putBoolean("qc2_1cb3a", qc2_1cb3a.isChecked());
        outState.putBoolean("qc2_1cb3b", qc2_1cb3b.isChecked());
        outState.putBoolean("qc2_1cb3c", qc2_1cb3c.isChecked());

    }

    @Override
    protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        myBoolean1 = savedInstanceState.getBoolean("qc2_1cb1a");
        myBoolean2 = savedInstanceState.getBoolean("qc2_1cb1b");
        myBoolean3 = savedInstanceState.getBoolean("qc2_1cb1c");
        myBoolean4 = savedInstanceState.getBoolean("qc2_1cb2a");
        myBoolean5 = savedInstanceState.getBoolean("qc2_1cb2b");
        myBoolean6 = savedInstanceState.getBoolean("qc2_1cb2c");
        myBoolean7 = savedInstanceState.getBoolean("qc2_1cb3a");
        myBoolean8 = savedInstanceState.getBoolean("qc2_1cb3b");
        myBoolean9 = savedInstanceState.getBoolean("qc2_1cb3c");

        qc2_1cb1a.setChecked(myBoolean1);
        qc2_1cb1b.setChecked(myBoolean2);
        qc2_1cb1c.setChecked(myBoolean3);
        qc2_1cb2a.setChecked(myBoolean4);
        qc2_1cb2b.setChecked(myBoolean5);
        qc2_1cb2c.setChecked(myBoolean6);
        qc2_1cb3a.setChecked(myBoolean7);
        qc2_1cb3b.setChecked(myBoolean8);
        qc2_1cb3c.setChecked(myBoolean9);
        
    }
}

xml代码


    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="462dp"
        android:layout_marginStart="15dp"
        android:layout_marginTop="125dp"
        android:layout_marginEnd="15dp"
        android:background="@color/black"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Sl No"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="75dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Measured Item"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="199dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="OP No"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="200dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="2"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Gauge Used"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="25dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.5"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Parameter"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="91dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="OK"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="92dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="NG"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="96dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="N/A"
                android:textColor="@color/black"
                android:textSize="25dp"
                android:textStyle="bold" />

        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="125dp"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="1."
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="75dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Groove Surface"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="75dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="25"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="200dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="2"
                android:background="#a3addb"
                android:gravity="center"
                android:text="  Visual"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="131dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.5"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Exist"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <CheckBox
                android:id="@+id/qc2_1cb1a"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_green" />

            <CheckBox
                android:id="@+id/qc2_1cb1b"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

            <CheckBox
                android:id="@+id/qc2_1cb1c"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="125dp"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="2."
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="291dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Serial Engraving Surface"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="291dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="30"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="41dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="2"
                android:background="#a3addb"
                android:gravity="center"
                android:text="  Visual"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.5"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Numbers should be readable"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <CheckBox
                android:id="@+id/qc2_1cb2a"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_green" />

            <CheckBox
                android:id="@+id/qc2_1cb2b"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

            <CheckBox
                android:id="@+id/qc2_1cb2c"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="125dp"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="3."
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="251dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="Machining Surface"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="251dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.25"
                android:background="#a3addb"
                android:gravity="center"
                android:text="25"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="31dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="2"
                android:background="#a3addb"
                android:gravity="center"
                android:text="  Visual"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <TextView
                android:layout_width="328dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight="1.5"
                android:background="#a3addb"
                android:gravity="center"
                android:text="No rough surface, unwash surface,scratch, burr"
                android:textColor="@color/black"
                android:textSize="25dp" />

            <CheckBox
                android:id="@+id/qc2_1cb3a"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_green" />

            <CheckBox
                android:id="@+id/qc2_1cb3b"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

            <CheckBox
                android:id="@+id/qc2_1cb3c"
                android:layout_width="64dp"
                android:layout_height="match_parent"
                android:layout_marginStart="2dp"
                android:layout_marginTop="2dp"
                android:layout_marginBottom="2dp"
                android:layout_weight=".25"
                android:background="#a3addb"
                android:button="@drawable/checkbox_red" />

        </TableRow>


    </TableLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="360dp"
        android:layout_marginTop="32dp"
        android:text="QC Station 2.1"
        android:textColor="@color/black"
        android:textSize="50dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:layout_width="211dp"
        android:layout_height="68dp"
        android:layout_marginStart="25dp"
        android:layout_marginTop="25dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logo" />

    <TextView
        android:id="@+id/date2_1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="35dp"
        android:layout_marginEnd="50dp"
        android:ems="6"
        android:hint="DD/MM/YYYY"
        android:inputType="date"
        android:textSize="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/time2_1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="70dp"
        android:layout_marginEnd="50dp"
        android:ems="6"
        android:hint="HH.MM.SS"
        android:inputType="time"
        android:textSize="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/next2_1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="25dp"
        android:layout_marginBottom="30dp"
        android:background="@drawable/button"
        android:text="next"
        android:textColor="@color/white"
        android:textSize="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <Button
        android:id="@+id/back2_1_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="25dp"
        android:layout_marginBottom="30dp"
        android:background="@drawable/button"
        android:text="Back"
        android:textColor="@color/white"
        android:textSize="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

任何解决此问题的支持都会有很大帮助

4

1 回答 1

0

您应该在 onCreate() 方法中从 savedInstanceState 获取值。有点像:

if (savedInstanceState!=null){
        myBoolean1 = savedInstanceState.getBoolean("qc2_1cb1a");
        myBoolean2 = savedInstanceState.getBoolean("qc2_1cb1b");
        myBoolean3 = savedInstanceState.getBoolean("qc2_1cb1c");
        myBoolean4 = savedInstanceState.getBoolean("qc2_1cb2a");
        myBoolean5 = savedInstanceState.getBoolean("qc2_1cb2b");
        myBoolean6 = savedInstanceState.getBoolean("qc2_1cb2c");
        myBoolean7 = savedInstanceState.getBoolean("qc2_1cb3a");
        myBoolean8 = savedInstanceState.getBoolean("qc2_1cb3b");
        myBoolean9 = savedInstanceState.getBoolean("qc2_1cb3c");
}

然后将其分配给您的复选框

于 2021-09-24T07:11:20.287 回答