我有这个问题......
我有活动(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(),但我无法找到在非活动类中使用它的方法......
答案 0 :(得分:0)
如果我理解,你想要的只是开始另一项活动,选择一些东西,然后回到你的第一项活动。
如果我是对的,您必须在第一个活动中调用startActivityForResult
(read more)方法,并在第一个活动中覆盖onActivityResult
(read more)方法以接收第二项活动的结果。
在关闭第二个活动之前,用户必须在该活动中做出选择,您必须使用要传递回第一个活动的数据填充结果意图。 (read more)
如果您在与OnCLickListener
相同的文件中定义FindItemActivity
,则可以使用FindItemActivity.this.finish()
中的代码OnClickListener
将其关闭。否则,您可以将活动类的链接传递给OnClickListener
,并使用此链接调用finish方法。