我有 Activity1 ,可扩展列表视图,其中包含自定义适配器,
在该适配器类中,我在可扩展列表视图的子项目中捕获按钮的onClick事件,并且我需要将有关可扩展列表的所选子项目的数据传递给 Activity2 ,其中用户进行了一些选择我需要在适配器类中完成结果,(当Activity2完成时),它是如何实现的?
在适配器类中工作,我只能在新线程中启动Activity2,所以我不能调用一些StartActivityForResult ......
我希望有一些方法可以创建共享变量并在任何地方使用它,但不知道如何...所以请帮助我!
答案 0 :(得分:1)
您可以在活动中创建OnClickListener
类init init并传递给适配器。将其设置为适配器中的按钮。点击按钮后,他的听众将会开火并做任何你想做的事情。如果您需要传递一些参数,只需覆盖OnClickListener
即可获得所需的所有参数。
您可以像这样写onClickListener
(ListActivity
的示例,所以只需将getListView更改为ListView
):
private OnClickListener mEditClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
int position = getListView().getPositionForView(v);
}
}
答案 1 :(得分:1)
在适配器构造函数中,将Context作为参数并将其保存在类变量中。
例如,它保存在Context callerContext
变量中。
现在,在onItemClickListener中,编写以下代码
Intent i = new Intent( callerContext , Activity2.class );
i.putExtra( "value" , items[position] );
callerContext.startActivity( i );
答案 2 :(得分:0)
在按钮上单击设置startActivityForResult和从Activity2设置结果,它将自动在Activity1的onActivityResult中找到。
答案 3 :(得分:0)
如果您希望将结果从活动返回到普通类,则认为它是一个包含自定义适配器的类。
希望这可以给你一个想法