我正在制作一个笔记列表,其中我有两个存储在变量中的EditText:TituloNota和InsertNota通过Nota.class类。我不能这样做,你保存在ListView中。我错过了什么属性?如您所见,CapturaNota.class类是否使用SharedPreferences存储数据(如果它在那里工作)。以下是3个类:
public class MainActivity extends Activity {
ArrayList<Nota> listaNota = new ArrayList<Nota>();
ListView lstNotas;
private SharedPreferences Guarda;
private static String GUARDA_N = "com.example.lorenote";
AdaptadorNota adaptador;
final static int ID_GUARDA_NOTA = 1;
final static int ID_CAPTURA_NOTA = 2;
private int posicionSeleccionada = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adaptador = new AdaptadorNota(this);
lstNotas=(ListView) findViewById(R.id.lstNotas);
lstNotas.setAdapter(adaptador);
registerForContextMenu(lstNotas);
Guarda =this.getSharedPreferences(GUARDA_N, this.MODE_PRIVATE);
}
public class AdaptadorNota extends ArrayAdapter<Nota> {
Activity context;
public AdaptadorNota(Activity context) {
super(context, R.layout.lst_item_nota, listaNota);
this.context=context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View item=inflater.inflate(R.layout.lst_item_nota, null);
TextView txtitemNota=(TextView)item.findViewById(R.id.txtItemNota);
txtitemNota.setText(listaNota.get(position).getNota());
TextView txtItemInsertNota =(TextView)item.findViewById(R.id.txtItemInsertNota);
txtItemInsertNota.setText(listaNota.get(position).getInsertNota());
return item;
}
}
public void Agrega(View view){
Intent i= new Intent(this, CapturaNota.class);
i.putExtra("TituloNota", "");
i.putExtra("InsertNota", "");
startActivityForResult(i, ID_CAPTURA_NOTA);
}
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case (ID_CAPTURA_NOTA):{
if(resultCode==RESULT_OK){
String TituloNota = data.getStringExtra("TituloNota");
String InsertNota = data.getStringExtra("InsertNota");
Nota n =new Nota(TituloNota, InsertNota);
listaNota.add(n);
adaptador.notifyDataSetChanged();
}
break;
}
case (ID_GUARDA_NOTA):{
if(resultCode==RESULT_OK){
String TituloNota = data.getStringExtra("TituloNota");
String InsertNota = data.getStringExtra("InsertNota");
SharedPreferences.Editor editor =Guarda.edit();
editor.putString("TituloNota", "");
editor.putString("InsertNota", "");
editor.commit();
Nota n =new Nota(TituloNota, InsertNota);
listaNota.add(n);
adaptador.notifyDataSetChanged();
}
break;
}
}
}
Nota.class
public class Nota {
private String eTituloNota;
private String txtInsertNota;
public Nota(String TituloNota, String InsertNota) {
eTituloNota = TituloNota;
txtInsertNota = InsertNota;
}
public String getNota() {
return eTituloNota;
}
public String getInsertNota() {
return txtInsertNota;
}
}
CapturaNota.class
public class CapturaNota extends Activity {
private EditText eTituloNota;
private EditText txtInsertNota;
private static String GUARDA_N = "com.example.lorenote";
private SharedPreferences Guarda;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.agregar_nota);
eTituloNota=(EditText) findViewById(R.id.eTituloNota);
eTituloNota.setHint("¿Cual sera el titulo de la nota?");
txtInsertNota=(EditText) findViewById(R.id.txtInsertNota);
txtInsertNota.setHint("Ingresa el texto aqui...");
Bundle extras = getIntent().getExtras();
eTituloNota.setText(extras.getString("TituloNota"));
txtInsertNota.setText(extras.getString("InsertNota"));
Guarda =this.getSharedPreferences(GUARDA_N, this.MODE_PRIVATE);
String valor =Guarda.getString("TituloNota", "");
eTituloNota.setText(valor);
valor =Guarda.getString("InsertNota", "");
txtInsertNota.setText(valor);
}
public void Agrega(View v) {
Toast.makeText(this, "Nota Agregada", Toast.LENGTH_SHORT).show();
Intent resultadoDelIntento = new Intent();
resultadoDelIntento.putExtra("TituloNota", eTituloNota.getText().toString());
resultadoDelIntento.putExtra("InsertNota", txtInsertNota.getText().toString());
setResult(RESULT_OK, resultadoDelIntento);
SharedPreferences.Editor editor =Guarda.edit();
editor.putString("TituloNota", eTituloNota.getText().toString());
editor.putString("InsertNota", txtInsertNota.getText().toString());
editor.commit();
finish();
}
}