缥帙各舒散,前后互相逾。这篇文章主要讲述使用intent和get方法时Android应用程序崩溃相关的知识,希望能为你提供帮助。
我是android编程的新手,我第一次尝试使用应用时遇到了问题。
我有两个活动。 ApplicazioneContattoActivity.java(主要的一个)和ModificaContattoActivity.java。
在第一个活动布局中,有三个textViews,其中包含姓名,姓氏和联系人的电话号码以及按钮。按下按钮时,应开始第二个活动。在第二个活动布局中,有三个editText应填充第一个活动的值。
值在具有intent和对象的活动之间传递。
【使用intent和get方法时Android应用程序崩溃】问题是,当按下第一个活动中的按钮时,应用程序崩溃。错误在于:
campoNome.setText(contatto.getNome());
你能帮我找出问题所在吗?
非常感谢你!
第一项活动:
package com.example.applicazionecontatto;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.io.Serializable;
public class ApplicazioneContattoActivity extends AppCompatActivity {
Contatto mioContatto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_applicazione_contatto);
Contatto mioContatto = new Contatto("Mario", "Rossi", "123456");
TextView nome = (TextView) this.findViewById(R.id.campoNome);
TextView cognome = (TextView) this.findViewById(R.id.campoCognome);
TextView numero = (TextView) this.findViewById(R.id.campoNumero);
nome.setText(mioContatto.getNome());
cognome.setText(mioContatto.getCognome());
numero.setText(mioContatto.getNumeroDiTelefono());
}public void modifica(View button){
Intent intent = new Intent(this, ModificaContattoActivity.class);
String pkg = getPackageName();
intent.putExtra(pkg+".mioContatto", (Serializable) mioContatto);
startActivityForResult(intent, 0);
}@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
String pkg = getPackageName();
mioContatto = (Contatto) data.getSerializableExtra(pkg+".nuovoContatto");
TextView nome = (TextView) this.findViewById(R.id.campoNome);
TextView cognome = (TextView) this.findViewById(R.id.campoCognome);
TextView numero = (TextView) this.findViewById(R.id.campoNumero);
nome.setText(mioContatto.getNome());
cognome.setText(mioContatto.getCognome());
numero.setText(mioContatto.getNumeroDiTelefono());
}
}}
第二项活动:
package com.example.applicazionecontatto;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import java.io.Serializable;
public class ModificaContattoActivity extends AppCompatActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modifica_layout);
Intent intent = getIntent();
String pkg = getPackageName();
Contatto contatto = (Contatto) intent.getSerializableExtra(pkg + ".mioContatto");
EditText campoNome = (EditText) findViewById(R.id.EditText1);
EditText campoCognome = (EditText) findViewById(R.id.EditText2);
EditText campoNumero = (EditText) findViewById(R.id.EditText3);
campoNome.setText(contatto.getNome());
campoCognome.setText(contatto.getCognome());
campoNumero.setText(contatto.getNumeroDiTelefono());
}public void conferma(View button){EditText campoNome = (EditText) findViewById(R.id.EditText1);
EditText campoCognome = (EditText) findViewById(R.id.EditText2);
EditText campoNumero = (EditText) findViewById(R.id.EditText3);
String nome = campoNome.getText().toString();
String cognome = campoCognome.getText().toString();
String numero = campoNumero.getText().toString();
Contatto nuovoContatto = new Contatto(nome, cognome, numero);
Intent intent = new Intent();
String pkg = getPackageName();
intent.putExtra(pkg+".nuovoContatto", (Serializable)nuovoContatto);
setResult(RESULT_OK, intent);
finish();
}
}
班级联系人:
package com.example.applicazionecontatto;
import java.io.Serializable;
public class Contatto implements Serializable{private String nome;
private String cognome;
private String numeroDiTelefono;
public String getNome() {
return nome;
}public void setNome(String nome) {
this.nome = nome;
}public String getCognome() {
return cognome;
}public void setCognome(String cognome) {
this.cognome = cognome;
}public String getNumeroDiTelefono() {
return numeroDiTelefono;
}public void setNumeroDiTelefono(String numeroDiTelefono) {
this.numeroDiTelefono = numeroDiTelefono;
}public Contatto(String nome, String cognome, String numeroDiTelefono) {
super();
this.nome = nome;
this.cognome = cognome;
this.numeroDiTelefono = numeroDiTelefono;
}}
推荐阅读
- 泄露的意图接收器rxAndroidble UPDATED
- Whatsapp喜欢通过短信实现邀请,只是短信,而不是通过意图选择器
- java.lang.ClassCastException(在尝试通过Instagram共享打印屏幕时,无法将byte []强制转换为android.os.Parcelable错误)
- android.net.wifi.STATE_CHANGE意图处理(在Activity中)
- Android Photo Gallery不会从OnActivityResult中的数据返回正确的Uri
- Cookie不适用于Apple设备上的WebSocket
- Android - 欧盟Cookie法
- Android - 保持会话活动直到关闭(直到用户注销)
- 带有IFrames Chrome 63的Android Cordova应用程序无请求标题Cookie