机器人。将数据从类发送到活动并获得结果

时间:2013-06-16 11:32:06

标签: java android interface android-activity

我有 Activity1 ,可扩展列表视图,其中包含自定义适配器,

在该适配器类中,我在可扩展列表视图的子项目中捕获按钮的onClick事件,并且我需要将有关可扩展列表的所选子项目的数据传递给 Activity2 ,其中用户进行了一些选择我需要在适配器类中完成结果,(当Activity2完成时),它是如何实现的?

在适配器类中工作,我只能在新线程中启动Activity2,所以我不能调用一些StartActivityForResult ......

我希望有一些方法可以创建共享变量并在任何地方使用它,但不知道如何...所以请帮助我!

4 个答案:

答案 0 :(得分:1)

您可以在活动中创建OnClickListener类init init并传递给适配器。将其设置为适配器中的按钮。点击按钮后,他的听众将会开火并做任何你想做的事情。如果您需要传递一些参数,只需覆盖OnClickListener即可获得所需的所有参数。

您可以像这样写onClickListenerListActivity的示例,所以只需将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)

如果您希望将结果从活动返回到普通类,则认为它是一个包含自定义适配器的类。

  1. 您不能使用startActivityForResult,因为您不在活动中
  2. 我所做的就是我有意向地从课堂上发起了这项活动。然后我计算或做了我必须做的事情。从这个活动我发送信息到主类使用方法MainActivity.the_method(),并在主要活动中我更改了自定义适配器o做了我必须使用的适配器对象和调用adapter.getItem(位置)
  3. 希望这可以给你一个想法