Android使用带有AlertDialog的ArrayAdapter中的ActivityForResult

时间:2014-10-28 10:16:01

标签: android android-intent android-activity android-alertdialog

在我的ArrayAdapter我有AlertDialog按钮。现在我想使用ActivityForResult。在这个简单的代码中,我可以使用Intent来查看其他Activity但我无法在ArrayAdapter中传递数据。

public class AdapterReceiveSMS extends ArrayAdapter<ReceivedItemStructure> {
    private myDialog dialog;

    public AdapterReceiveSMS(ArrayList<ReceivedItemStructure> array) {
        super(G.context, R.layout.rsms, array);
    }

        /* ----- Clicking on Forward Button ----- */
        forward_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        G.activityDialogContext);
                View vForward = G.inflater.inflate(R.layout.forward, null);
                builder.setView(vForward);
                final AlertDialog sms_dialog = builder.create();
                sms_dialog.show();

                from_file.setOnClickListener ( new View.OnClickListener () {
                    @Override
                    public void onClick (View v) {
                        Intent fileBrowser = new Intent(G.activity,ActivityFileBrwoser.class);
                        G.activity.startActivityForResult ( fileBrowser, 1 );
                    }
                } );

        }
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == 1) {

    }
}

2 个答案:

答案 0 :(得分:0)

onActivityResult在一个重写的Activity类方法中,当你启动的一个活动退出时调用它,给你启动它的requestCode,它返回的resultCode,以及它的任何其他数据。“

您使用此代码

开始了活动
G.activity.startActivityForResult ( fileBrowser, 1 );

你必须将onActivityResult方法放在你的调用活动中(我指的是你在创建AdapterReceiveSMS类对象的活动。)

答案 1 :(得分:0)

您无法向类添加回调方法,并希望系统调用它。 onActivityResult属于您的Activity,然后可以将信息传递给您的适配器。