我有2个活动,一个是练习数据库,另一个是新的练习创建者
在这个函数中我创建了一个新类的练习,我想将新类返回给 数据库活动。
并且在创建新练习时删除此活动并创建一个新活动,该活动将创建一个新的练习类。
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);
}
创建课程时,2个活动的最佳做法是什么,将其保存到列表中并在再次按下“创建新练习按钮”时创建新课程?
或者我应该在add exercise activity中创建类的实例?
答案 0 :(得分:1)
首先,你要创建的是对象,而不是类。
您可以使用finish();
停止活动,这会让您返回之前的活动。
如果您希望第二个活动将数据发送到第一个活动,可以查看startActivityForResult
。查看this主题。
答案 1 :(得分:1)
从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()方法的以下代码。
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
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