[英]best practice for intents in return value android
我有2个活动,一个是练习数据库,另一个是新练习创建者
在此函数中,我创建了练习的新类,我想将新类返回到数据库活动。
创建新练习时,请删除此活动并创建一个新活动,这将创建一个新的Exercise类。
public void onClickDone(View view)
{
EditText editText = (EditText) findViewById(R.id.edit_name);
String name = editText.getText().toString();
editText = (EditText) findViewById(R.id.edit_description);
String description = editText.getText().toString();
editText = (EditText) findViewById(R.id.edit_reptitons);
EditText editSets = (EditText) findViewById(R.id.edit_sets);
EditText editTimeBetweenSets = (EditText) findViewById(R.id.edit_time_between_sets_);
int reptitons = 0 ;
int sets = 0 ;
int timeBetweenSets = 0;
try
{
reptitons = Integer.parseInt(editText.getText().toString());
sets = Integer.parseInt(editSets.getText().toString());
timeBetweenSets = Integer.parseInt(editTimeBetweenSets.getText().toString());
}
catch(NumberFormatException ex)
{
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);
dlgAlert.setMessage("please check you input");
dlgAlert.setTitle("Wrong Input");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(true);
dlgAlert.create().show();
}
_excercise = new Exercise(name, description, reptitons, sets, timeBetweenSets);
}
再次按下“创建新锻炼按钮”创建两个班级,将其保存到列表并创建一个新活动的最佳实践是什么?
还是我应该在添加运动活动中创建该类的实例?
首先,您正在创建对象,而不是类。
您可以使用finish();
停止活动finish();
这应该使您返回上一个活动。
如果您希望第二个活动将数据发送到第一个活动,则可以查看startActivityForResult
。 查看此主题。
从您的FirstActivity中,使用startActivityForResult()方法调用SecondActivity
例如:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在您的SecondActivity中,设置要返回到FirstActivity的数据。 如果您不想返回,请不要进行任何设置。
例如:
如果要发送回数据,请在secondActivity中:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();
如果您不想返回数据:
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
现在,在FirstActivity类中,为onActivityResult()方法编写以下代码。
受保护的void onActivityResult(int requestCode,int resultCode,Intent数据)
{
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.