Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onActivityResult中的requestCode和resultCode指的是什么?_Java_Android_Android Studio_Radio Button_Onactivityresult - Fatal编程技术网

Java onActivityResult中的requestCode和resultCode指的是什么?

Java onActivityResult中的requestCode和resultCode指的是什么?,java,android,android-studio,radio-button,onactivityresult,Java,Android,Android Studio,Radio Button,Onactivityresult,大家好。我是android新手,现在在我的程序中使用startActivityForResult。在我的应用程序中,我有两个按钮和两个文本视图。用于打开对话框的两个按钮。如何检查在ActivityResult上按下的按钮,以便根据按钮设置文本视图 int a1 = 1; int a2 = 2; button1.setOnClickListener(new View.OnClickListener() { @Override publ

大家好。我是android新手,现在在我的程序中使用startActivityForResult。在我的应用程序中,我有两个按钮和两个文本视图。用于打开对话框的两个按钮。如何检查在ActivityResult上按下的按钮,以便根据按钮设置文本视图

  int a1 = 1;
  int a2 = 2;

   button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialogRadio(a1);

            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialogRadio(a2);

            }
        });

 public void AlertDialogRadio(final int k) {  //parameter k is never used
            final CharSequence[] ClaimsModel = {"Project", "Petrol", "Car Maintenance"
                    , "Medical", "Other"};

            AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
            alt_bld.setTitle("Select a Claims");
            alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
                    .OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    if (item == 0) {
                        Intent intent = new Intent(getActivity().getApplicationContext(), Project1.class);
                        startActivityForResult(intent, 0);
                    } else if (item == 1) {
                        Intent intent = new Intent(getActivity().getApplicationContext(), Petrol.class);
                        startActivityForResult(intent, 1);
                    } else if (item == 2) {
                        Intent intent = new Intent(getActivity().getApplicationContext(), CarMainten.class);
                        startActivityForResult(intent, 2);
                    } else if (item == 3) {
                        Intent intent = new Intent(getActivity().getApplicationContext(), Medical.class);
                        startActivityForResult(intent, 3);
                    } else if (item == 4) {
                        Intent intent = new Intent(getActivity().getApplicationContext(), Other.class);
                        startActivityForResult(intent, 4);
                    }

                    dialog.dismiss();

                }
            });
            AlertDialog alert = alt_bld.create();
            alert.show();
        }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == 1) { // if button1 was clicked
            switch (requestCode) {
                case 0:
                    String result = data.getStringExtra("text");
                    String b = data.getStringExtra("a");
                    c.setText("            " + b + "------" + "RM " + result);
                    Toast.makeText(getActivity(), "Not completed ", Toast.LENGTH_LONG).show();
                    break;

                case 1:
                    String result1 = data.getStringExtra("text");
                    String b1 = data.getStringExtra("a");
                    c.setText("            " + b1 + "------" + "RM " + result1);
                    break;


                case 2:
                    String result2 = data.getStringExtra("text");
                    String b2 = data.getStringExtra("a");
                    c.setText("            " + b2 + "------" + "RM " + result2);
                    break;

                case 3:
                    String result3 = data.getStringExtra("text");
                    String b3 = data.getStringExtra("a");
                    c.setText("            " + b3 + "------" + "RM " + result3);
                    break;

                case 4:
                    String result4 = data.getStringExtra("text");
                    String b4 = data.getStringExtra("a");
                    c.setText("            " + b4 + "------" + "RM " + result4);
                    break;
            }
        }
        else if (resultCode == 2) { // if button2 was clicked
            switch (requestCode) {
                case 0:
                    String result = data.getStringExtra("text");
                    String b = data.getStringExtra("a");
                    d.setText("            " + b + "------" + "RM " + result);
                    break;

                case 1:
                    String result1 = data.getStringExtra("text");
                    String b1 = data.getStringExtra("a");
                    d.setText("            " + b1 + "------" + "RM " + result1);
                    break;

                case 2:
                    String result2 = data.getStringExtra("text");
                    String b2 = data.getStringExtra("a");
                    d.setText("            " + b2 + "------" + "RM " + result2);
                    break;

                case 3:
                    String result3 = data.getStringExtra("text");
                    String b3 = data.getStringExtra("a");
                    d.setText("            " + b3 + "------" + "RM " + result3);
                    break;

                case 4:
                    String result4 = data.getStringExtra("text");
                    String b4 = data.getStringExtra("a");
                    d.setText("            " + b4 + "------" + "RM " + result4);
                    break;
            }
        }
    }
所以我的程序应该是这样工作的: 如果单击按钮1,…c.setText; 如果单击按钮2,…d.setText

但该程序现在在TextView上没有显示任何内容。错误是否来自于如果resultCode==1,或者如果resultCode==2??非常感谢

假设使用select Project1.class

项目1.2类


这里应该避免使用文字代码

if (resultCode == 1)
最好使用命名常量-

if (resultCode == RESULT_OK) {

结果确定为-1,所以这可能是您的问题。

一旦我将所有请求代码设置为相同的代码。没用。 看起来你的申请代码不同,我习惯于这样看:

private static final int REQUEST_CODE_THIS = 0;
private static final int REQUEST_CODE_THAT = 1;
private static final int REQUEST_CODE_THE_OTHER = 1003;

public void onClick(DialogInterface dialog, int item) {
                    if (item == 0) {
                        Intent intent = new     Intent(getActivity().getApplicationContext(), Project1.class);
                        startActivityForResult(intent, REQUEST_CODE_THIS);
检查这样更改onActivityResult是否有帮助

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_THIS) { // if button1 was clicked
        switch (resultCode == RESULT_OK) {
            case 0:
                   ...
        }

request\u code是调用函数标识,从哪里请求,result\u code是被调用函数标识符,它还将被调用消息的状态指定为Intent.ACTIVITY\u OK等等。

有人可以帮忙吗?ThanksrequestCode代表谁,resultCode代表结果,你是否在其他活动中使用setResult?是的,我在5个活动中使用了setResult。将getActivity.getApplicationContext替换为getActivity;无法解析getActivity。如何知道按下了哪个按钮?哦,我明白了。您将返回一个int而不是标准结果代码。标准模式是发回RESULT_OK或RESULT_CANCELLED,然后通过此双参数setResult方法将结果数据发送回Intent。看起来您已经在发回Intent了。为什么不将按下的按钮放在其中?那么它是否有另一种方法来检查单击了哪个按钮?如何将参数k传递给new Intent,然后将参数k返回到onActivityResult以检查单击了哪个按钮?谢谢,但是如果你也能帮助解决我的问题,tt会更好:请先使用ACTIVITY_OK而不是1,然后在setResult之后尝试删除finish,它会解决你的问题
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_THIS) { // if button1 was clicked
        switch (resultCode == RESULT_OK) {
            case 0:
                   ...
        }