Android意图失败
我正在用一个小表单制作一个应用程序,点击它可以改变活动 在第二个活动中,您应该看到输入的数据,当您单击按钮时,返回相同的数据,以便对其进行编辑 该应用程序可以很好地将数据发送到第二个活动 但当返回编辑数据时,添加返回应用程序的意图并不起作用 主要活动Android意图失败,android,android-intent,Android,Android Intent,我正在用一个小表单制作一个应用程序,点击它可以改变活动 在第二个活动中,您应该看到输入的数据,当您单击按钮时,返回相同的数据,以便对其进行编辑 该应用程序可以很好地将数据发送到第二个活动 但当返回编辑数据时,添加返回应用程序的意图并不起作用 主要活动 package com.niccode.desarrollounaapp; import android.content.Intent; import android.os.Bundle; import android.view.View; im
package com.niccode.desarrollounaapp;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.datepicker.MaterialDatePicker;
import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button Siguiente = (Button) findViewById(R.id.Siguiente);
final EditText etName = (EditText) findViewById(R.id.tiNombreCompleto);
final EditText etFecha = (EditText)findViewById(R.id.Calendario);
final EditText etTelefono = (EditText)findViewById(R.id.tiTelefono);
final EditText etEmail = (EditText)findViewById(R.id.tiEmail);
final EditText etDescripcion = (EditText) findViewById(R.id.tiDescripcionContacto);
MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
builder.setTitleText(getResources().getString(R.string.date1));
final MaterialDatePicker<Long> materialDatePicker = builder.build();
etFecha.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialDatePicker.show(getSupportFragmentManager(), "DATE_PICKER");
}
});
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
etFecha.setText(materialDatePicker.getHeaderText());
}
});
Siguiente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Confirmar_Datos.class);
intent.putExtra(getResources().getString(R.string.pname), etName.getText().toString());
intent.putExtra(getResources().getString(R.string.pdate), etFecha.getText().toString());
intent.putExtra(getResources().getString(R.string.ptelefono), etTelefono.getText().toString());
intent.putExtra(getResources().getString(R.string.pemail), etEmail.getText().toString());
intent.putExtra(getResources().getString(R.string.pDescripcion), etDescripcion.getText().toString());
startActivity(intent);
finish();
}
});
Bundle para_back = getIntent().getExtras();
assert para_back != null;
final String nombre_return = para_back.getString(getResources().getString(R.string.rtname));
final String fecha_return = para_back.getString(getResources().getString(R.string.rtdate));
final String telefono_return = para_back.getString(getResources().getString(R.string.rtelefono));
final String email_return = para_back.getString(getResources().getString(R.string.rtemail));
final String descripcion_return = para_back.getString(getResources().getString(R.string.rtDescripcion));
etName.setText(nombre_return);
etFecha.setText(fecha_return);
etTelefono.setText(telefono_return);
etEmail.setText(email_return);
etDescripcion.setText(descripcion_return);
}
}
字符串文件
<resources>
<string name="app_name">DesarrolloUnaApp</string>
<string name="nombre_completo">Nombre Completo</string>
<string name="telefono">Teléfono</string>
<string name="email"> Email</string>
<string name="descripcion_contacto">Descripción del Contacto</string>
<string name="siguiente">Siguiente</string>
<string name="date1">Fecha de Nacimiento</string>
<string name="confirmar">Confirmar Datos</string>
<string name="pname">Name</string>
<string name="pdate">Date</string>
<string name="ptelefono">Telefono</string>
<string name="pemail">Email</string>
<string name="pDescripcion">Descripcion</string>
<string name="editar_datos">Editar Datos</string>
<string name="tvdate">Date : </string>
<string name="tvtelefono">Telefono : </string>
<string name="tvemail">Email : </string>
<string name="tvDescripcion">Descripcion : </string>
<string name="rtname">Nombre</string>
<string name="rtdate">Fecha</string>
<string name="rtelefono">Telefono</string>
<string name="rtemail">Email</string>
<string name="rtDescripcion">Descripcion</string>
</resources>
德沙洛纳酒店
名词复数
特莱福诺酒店
电子邮件
描述联系人
西吉恩特
纳西门托酒店
达托斯确认酒店
名称
日期
电传
电子邮件
描述
伊迪塔达托斯
日期:
电话:
电邮:
描述:
名义
德国福查
电传
电子邮件
描述
试试这个。在main活动中
定义SECOND\u活动
变量如下
Public class MainActivity extends AppCompatActivity {
private static final int SECOND_ACTIVITY = 0;
从中更新以下行
Intent regresar = new Intent (Confirmar_Datos.this, MainActivity.class);
到
更换startActivity(regresar)代码>带有
startActivityForResult(regresar, SECOND_ACTIVITY);
Intent regresar = new Intent()
setResult(Activity.RESULT_OK,regresar);
finish();
在第二个活动中,replaceIntent regresar=新的Intent(Confirmar_Datos.this,MainActivity.class)代码>带有
startActivityForResult(regresar, SECOND_ACTIVITY);
Intent regresar = new Intent()
setResult(Activity.RESULT_OK,regresar);
finish();
同时更换startActivity(regresar)代码>带有
startActivityForResult(regresar, SECOND_ACTIVITY);
Intent regresar = new Intent()
setResult(Activity.RESULT_OK,regresar);
finish();
在第一个活动中,数据将在ActivityResult上显示
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent return_data) {
super.onActivityResult(requestCode, resultCode, return_data);
if (requestCode == SECOND_ACTIVITY) {
if(resultCode == Activity.RESULT_OK){
String result=return_data.getStringExtra("key"); // This from regresar.putExtra
}
}
}//onActivityResult
有关更多详细信息,请查看以下链接
参考资料:
您看过使用startactivityforresult()
和onactivityresult()
API吗