Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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 存储startActivityFromResult中的字符串时出现问题_Java_Android_Android Intent - Fatal编程技术网

Java 存储startActivityFromResult中的字符串时出现问题

Java 存储startActivityFromResult中的字符串时出现问题,java,android,android-intent,Java,Android,Android Intent,我想做的是: 当我启动应用程序时,主活动的界面将是 显示,但全局字符串将不存储任何数据 然后,当我单击MainActivity中的按钮时,我将被引导到下一个活动 在第二个活动中,有一个EditText,我可以在其中输入任何我想要的内容 然后,如果在editText中输入完成(假设editText与需要执行的if语句条件相同),我将单击第二个活动中的按钮,并将意图传递给MainActivity类 在MainActivity中,我希望获得第二个活动传递的意图,将其存储在我的字符串中,当我单击Main

我想做的是:

  • 当我启动应用程序时,主活动的界面将是 显示,但全局字符串将不存储任何数据
  • 然后,当我单击MainActivity中的按钮时,我将被引导到下一个活动
  • 在第二个活动中,有一个EditText,我可以在其中输入任何我想要的内容
  • 然后,如果在editText中输入完成(假设editText与需要执行的if语句条件相同),我将单击第二个活动中的按钮,并将意图传递给MainActivity类
  • 在MainActivity中,我希望获得第二个活动传递的意图,将其存储在我的字符串中,当我单击MainActivity中的按钮时,它将显示一条消息,显示一个祝酒词,上面写着“Successful” 我的问题在步骤5,当我点击按钮时,它不显示“成功”;它显示“错误”。假设我键入的内容与if语句中需要的内容相同

    我的代码是:

    浮动操作按钮代码:

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent i = new Intent(MainActivity.this, SearchCategory.class);
                    startActivityForResult(i, 0);
                }
            });
    
    注意:这是打开第二个活动的按钮

    在我的第二个活动按钮中,单击代码:

    public void search(View view) {
    
        editText1 = (EditText)findViewById(R.id.start_text);
        type = editText1.getText().toString();
    
    
    
        Intent intent = new Intent();
        Bundle bundle = new Bundle();
        bundle.putString("type", type);
        intent.putExtras(bundle);
        setResult(RESULT_OK, intent);
        finish();
    
    }
    
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                /*EditText et = (EditText)findViewById(R.id.text_category);*/
    
                Bundle category = data.getExtras();
                category_text = category.getString("type");
    
                /*et.setText(start);*/
            }
        }
    
    在主要活动中单击按钮

    public void onButtonClick(View view) {
    if (start == "Car") {
                Toast.makeText(this, "Successful", Toast.LENGTH_LONG).show();
    } else {
    Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
    }
    
    关于活动结果代码:

    public void search(View view) {
    
        editText1 = (EditText)findViewById(R.id.start_text);
        type = editText1.getText().toString();
    
    
    
        Intent intent = new Intent();
        Bundle bundle = new Bundle();
        bundle.putString("type", type);
        intent.putExtras(bundle);
        setResult(RESULT_OK, intent);
        finish();
    
    }
    
    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                /*EditText et = (EditText)findViewById(R.id.text_category);*/
    
                Bundle category = data.getExtras();
                category_text = category.getString("type");
    
                /*et.setText(start);*/
            }
        }
    

    注意:我尝试在主活动中添加editText,它显示我在第二个活动的editText中键入的文本。

    start是字符串值,因此将此条件更改为

    开始。等于(“汽车”)


    下面的代码有问题

    if (start == "Car") {
                Toast.makeText(this, "Successful", Toast.LENGTH_LONG).show();
    } else {
    Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
    }
    
    您应该将字符串与equals(“Car”)进行比较

    请参考一些基本概念

  • 当您的
    开始
    值更改时?在这段代码中它从未改变过。 在这种情况下,你应该这样做

    Bundle category=data.getExtras();
    start=category.getString(“类型”)

  • 或通过
    category\u text
    检查条件,如下所示

    if(类别文本等于(“汽车”)){
    Toast.makeText(这个“成功”,Toast.LENGTH_LONG.show();
    }否则{
    Toast.makeText(此“错误”,Toast.LENGTH_LONG).show();
    }

  • “它显示错误”。。。单击按钮时,
    start
    变量的值是多少?