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
-
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
<?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
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);
-
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:
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.