Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: nikiton en 28 de Octubre 2022, 05:48

Título: ayuda con error AndroidStudio
Publicado por: nikiton en 28 de Octubre 2022, 05:48
Hola buenas estoy haciendo una actividad, y me surgio un error en una de ellas, se me solicita hacer una agenda que guarde el nombre, el correo y el numero.
Al realizar la actividad pude realizar correctamente el nombre y el correo, pero al intentar guardar el numero no me deja, subo mi codigo y el error que me da.

Código de mi activity
Código: [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#7DDC81"
    tools:context=".MainAgenda">

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.026"
        app:srcCompat="@mipmap/logo" />
    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="164dp"
        android:text="Agenda de Contactos"
        android:textSize="34sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.209"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/txt_nombre"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="52dp"
        android:hint="Ingrese un Nombre"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.18"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView5" />

    <EditText
        android:id="@+id/txt_datos"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="36dp"
        android:layout_marginTop="40dp"
        android:ems="10"
        android:hint="Ingrese su Correo"
        android:inputType="textEmailAddress"
        android:textSize="24sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txt_nombre" />

    <Button
        android:id="@+id/bt_guardar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="64dp"
        android:layout_marginTop="68dp"
        android:onClick="guardar"
        android:text="Guardar"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txt_nume" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="68dp"
        android:layout_marginEnd="68dp"
        android:onClick="buscar"
        android:text="Buscar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txt_nume" />

    <EditText
        android:id="@+id/txt_nume"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:ems="10"
        android:hint="Ingrese su Numero"
        android:inputType="phone"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.179"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txt_datos" />


</androidx.constraintlayout.widget.ConstraintLayout>

Codigo de mi Main
Código: [Seleccionar]
package com.example.appsEjericio;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainAgenda extends AppCompatActivity {
    private EditText et_nombre, et_datos, et_num;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_agenda);

        et_nombre = (EditText) findViewById(R.id.txt_nombre);
        et_datos = (EditText) findViewById(R.id.txt_datos);
        et_num  = (EditText) findViewById(R.id.txt_nume);
    }

    public void Guardar(View view){
        String nombre = et_nombre.getText().toString();
        String datos = et_datos.getText().toString();
        String nume = et_num.getText().toString();

        int numerovalor = Integer.parseInt(nume);

        SharedPreferences preferences = getSharedPreferences("agenda",
                Context.MODE_PRIVATE);
        SharedPreferences.Editor obj_editor = preferences.edit();
        obj_editor.putString(nombre, datos, numerovalor);
        obj_editor.commit();
        Toast.makeText(this, "El contacto ha sido guardado",
                Toast.LENGTH_SHORT).show();
    }

    public void Buscar(View v){
        String nombre = et_nombre.getText().toString();


        SharedPreferences preferences = getSharedPreferences("agenda",
                Context.MODE_PRIVATE);
        String datos = preferences.getString(nombre, "");

        if (datos.length()==0){
            Toast.makeText(this, "No se encontro ningun registro",
                    Toast.LENGTH_SHORT).show();
        }else{
            et_datos.setText(datos);
        }
    }
}

el error que me da es en en esta seccion
obj_editor.putString(nombre, datos, numerovalor);

Título: Re: ayuda con error AndroidStudio
Publicado por: Kabuto en 28 de Octubre 2022, 09:48
Hola.
Se poco (más bien nada) de programación Android.

Sin embargo, viendo la línea que dices que te da error, he curioseado la documentación del método putString() (https://developer.android.com/reference/android/content/SharedPreferences.Editor#putString(java.lang.String,%20java.lang.String)) y veo que dicho método solo acepta dos parámetros: una "clave" y un "valor"

Pero tú le estás pasando tres parámetros:
Código: [Seleccionar]
obj_editor.putString(nombre, datos, numerovalor);
Hay otro método, el putStringSet() (https://developer.android.com/reference/android/content/SharedPreferences.Editor#putStringSet(java.lang.String,%20java.util.Set%3Cjava.lang.String%3E)), que admite una "clave" y un conjunto(Set) de valores. Ahí si tendrías posibilidad de  incluir todos los valores que quieras.