Java 返回值中意图的最佳实践

Java 返回值中意图的最佳实践,java,android,android-intent,Java,Android,Android Intent,我有两个活动,一个是练习数据库,另一个是新练习创建者 在这个函数中,我创建了一个练习的新类,我想将新类返回到 数据库活动 创建新练习时,删除此活动并创建一个新活动,该活动将创建一个新的练习类 public void onClickDone(View view) { EditText editText = (EditText) findViewById(R.id.edit_name); String name = editText.getText().toString();

我有两个活动,一个是练习数据库,另一个是新练习创建者

在这个函数中,我创建了一个练习的新类,我想将新类返回到 数据库活动

创建新练习时,删除此活动并创建一个新活动,该活动将创建一个新的练习类

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()停止活动
将返回到以前的活动


如果您希望第二个活动向第一个活动发送数据,请查看
startActivityForResult
。签出主题。

从第一个活动中使用startActivityForResult()方法调用第二个活动

例如:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在第二个活动中,设置要返回第一个活动的数据。如果您不想返回,请不要设置任何

例如:

在secondActivity中,如果要发回数据:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();
如果不想返回数据:

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
现在,在第一个Activity类中,为onActivityResult()方法编写以下代码

受保护的void onActivityResult(int请求代码、int结果代码、意图数据)


为什么你需要一项活动来锻炼身体?你不能只使用一个类来访问你的数据库吗?我想有一个用户可以编辑的主数据库。从这个数据库中,您可以创建不同的exercise列表。我可能理解不正确,但是如果您使用的是SQLite、IMHO之类的东西,那么最好将与DB一起工作的类分开(它实际上对DB进行操作)以及用户用于输入和编辑数据的活动。不,这是一个本地类,不是真正的sql db。此类操作系统是一个列表,其中包含用户输入的所有其他类。从db类中,您可以选择要在特定临时列表中显示的类
{

    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