Android将参数传递给非活动类的活动

时间:2014-06-21 13:16:11

标签: java android

我有这个问题......

我有活动(CartActivity)开始另一个活动(FindItemActivity)。

在FindItemActivity中有一个expandlableListView(由自定义expandalbleListAdapter构建),带有自定义ActionListener(OnclickListener)的Buttons(AddItem)

我想将参数从我的actionListener传递给第一个活动(CartActivity)。

这就是我现在所拥有的(在我的点击监听器中):

public class addOnClickListener implements OnClickListener{
Product toAdd;
Context toEnd;
public addOnClickListener(Product addable, Context context){
    this.toAdd = addable;
    this.toEnd = context;
}
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent i = new Intent(toEnd,MyCartActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
    i.putExtra("Name", this.toAdd.name);
    i.putExtra("Code", String.valueOf(this.toAdd.code));
    i.putExtra("Price", String.valueOf(this.toAdd.price));
    toEnd.startActivity(i);

}
}

但是,每次按下按钮时,应用程序都会启动NEW CartActivity,而不是旧的CartActivity,它已经在运行......我需要存储在原始活动中的数据,所以我必须恢复它,而不是开始新的... 编译器告诉我从非活动类启动活动时需要FLAG_ACTIVITY_NEW_TASK。

是否有其他标志可用于恢复活动而不是开始新活动?

或者我可以关闭某种活动FindItemActivity吗?我尝试了finish(),但我无法找到在非活动类中使用它的方法......

1 个答案:

答案 0 :(得分:0)

如果我理解,你想要的只是开始另一项活动,选择一些东西,然后回到你的第一项活动。

如果我是对的,您必须在第一个活动中调用startActivityForResultread more)方法,并在第一个活动中覆盖onActivityResultread more)方法以接收第二项活动的结果。

在关闭第二个活动之前,用户必须在该活动中做出选择,您必须使用要传递回第一个活动的数据填充结果意图。 (read more

如果您在与OnCLickListener相同的文件中定义FindItemActivity,则可以使用FindItemActivity.this.finish()中的代码OnClickListener将其关闭。否则,您可以将活动类的链接传递给OnClickListener,并使用此链接调用finish方法。