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