android如何在适配器内调用startActivityForResult

时间:2013-02-11 00:38:40

标签: java android android-activity android-adapter android-adapterview

我有一个适配器类:

public class AdapterAllAddress extends BaseExpandableListAdapter {
private Context context;
    public AdapterAllAddress(Context context,
            ArrayList<AllAddressesGroup> groups) {
        // TODO Auto-generated constructor stub
        this.context = context;
    }
}

我想在点击按钮时拨打startActivityForResult,我知道我可以这样拨打startActivity

context.startActivity() 

但是我正在寻找有结果的活动,请问怎么样?

2 个答案:

答案 0 :(得分:21)

yourButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
        Intent intent = new Intent(context, YourNewActivity.class);
        ((Activity) context).startActivityForResult(intent, resultCode);
    }
});

答案 1 :(得分:2)

我只是想指出一个我在案例中遇到的细节 E / ActivityThread(31584):执行停止未恢复的活动:{com.example.test / activities.MainActivity} 最有可能的是你将getApplicationContext()传递给适配器的构造函数。为了避免这种情况,您必须提供&#34; CallingActivity.this &#34;将适配器的构造函数作为 context 对象,请记住这一点。