Android studio ListView仅显示一个具有SharedReferences的项目

Android studio ListView仅显示一个具有SharedReferences的项目,android-studio,sharedpreferences,Android Studio,Sharedpreferences,我需要帮助,我对SharedReference和ArrayAdapter有问题。 我正在制作一个测试应用程序,用户通过一个浮动按钮输入4个数据类型字符串,我将这些数据作为对象添加到ArrayList中 我将此列表存储在SharedReferences中,并希望将其传递给片段以检索其中的数据并在列表中打印,以便在用户添加更多内容时显示每个注册对象 问题是,在执行应用程序时,在填充数据后,我去检查包含列表的片段,只显示最后一条记录。也就是说,它只显示一个列表项,我需要它在另一个列表项下显示一个列表项

我需要帮助,我对SharedReference和ArrayAdapter有问题。 我正在制作一个测试应用程序,用户通过一个浮动按钮输入4个数据类型字符串,我将这些数据作为对象添加到ArrayList中

我将此列表存储在SharedReferences中,并希望将其传递给片段以检索其中的数据并在列表中打印,以便在用户添加更多内容时显示每个注册对象

问题是,在执行应用程序时,在填充数据后,我去检查包含列表的片段,只显示最后一条记录。也就是说,它只显示一个列表项,我需要它在另一个列表项下显示一个列表项

 public class TodayFragment extends Fragment {

private int v_id, v_rango;
private String v_act, v_max, v_max;
private ListView L_datos;


    public TodayFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

public void SaveList(){

    id++;
    name_act = name_act.getText().toString();
    f_max = (a_max+"-"+m_max+""+d_max);
    h_max = (ho_max+":"+min_max); 
    rango = rango_i;

        final Context context = this;
        SharedPreferences sharprefs = getSharedPreferences("List_archive", context.MODE_PRIVATE);

    SharedPreferences sharpref = getPreferences(context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharpref.edit();

    editor.putInt("id", id);
    editor.putString("name_act", name_act);
    editor.putString("f_max", f_max);
    editor.putString("h_max", h_max);
    editor.putInt("rango", rango);
    editor.commit();

  }
}
我在以下片段的onCreateView中收到此列表,其中包含SharedReferences:

public class TodayFragment extends Fragment {

    private int v_id, v_rango;
    private String v_name_act, v_f_max, v_h_max;

    private ListView L_datos;

        public TodatFragment() {
   // Required empty public constructor
    }

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View root = inflater.inflate(R.layout.fragment_hoy, container, false);
   
        L_datos = (ListView) root.findViewById(R.id.LV_datos_hoy);
        
        SharedPreferences sharpref = getActivity().getPreferences(Context.MODE_PRIVATE);
        v_id = sharpref.getInt("id", 0);
        v_nom_act = sharpref.getString("nom_act", "vacio");
        v_fecha_max = sharpref.getString("fech_max", "vacio");
        v_hora_max = sharpref.getString("hora_max", "vacio");
        v_rango = sharpref.getInt("rango", 0);
        
        ArrayList<Actividades> lista = new ArrayList<Actividades>();

        //aqui voy agregando todos estos argumentos como objeto, cada vez que se haga un registro de actividad se va guardando una debajo de otra
        lista.add(new Actividades(v_id, v_nom_act, v_fecha_actual, v_fecha_max, v_hora_max, v_rango));

        ArrayAdapter <Activi> adapter = new ArrayAdapter<Activi>(getContext(), android.R.layout.simple_list_item_1, lista);
        L_datos.setAdapter(adapter);
        
        // Inflate the layout for this fragment
        return root;
    }


 }
公共类TodayFragment扩展了片段{
私人国际身份证;
私有字符串v_name_act、v_f_max、v_h_max;
私人ListView L_datos;
公共TodatFragment(){
//必需的空公共构造函数
}
@RequiresApi(api=Build.VERSION\u CODES.KITKAT)
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根=充气机。充气(R.layout.fragment\u hoy,container,false);
L_datos=(ListView)root.findViewById(R.id.LV_datos_hoy);
SharedReferences sharpref=getActivity().getPreferences(Context.MODE\u PRIVATE);
v_id=sharpref.getInt(“id”,0);
v_nom_act=sharpref.getString(“nom_act”、“vacio”);
v_fecha_max=sharpref.getString(“fech_max”、“vacio”);
v_hora_max=sharpref.getString(“hora_max”、“vacio”);
v_rango=sharpref.getInt(“rango”,0);
ArrayList lista=新的ArrayList();
//我要说的是,我们的目标是什么?我们的目标是什么
添加(新活动(v_id、v_nom_act、v_fecha_actual、v_fecha_max、v_hora_max、v_rango));
ArrayAdapter=新的ArrayAdapter(getContext(),android.R.layout.simple\u list\u item\u 1,lista);
L_datos.setAdapter(适配器);
//为该碎片膨胀布局
返回根;
}
}
我需要知道,我必须更改或修改,以便每次用户填写请求并同意的4个数据时,它都存储在每个项目中。需要澄清的是,我从ActivityMain请求此数据,并以片段形式接收