[英]Send data from one activity to another
我想将 main2Activity 的变量 indicatorpositionstart 的内容发送到 mainActivity。 我使用了“额外”的解决方案,但不起作用。
有什么问题?
public class Main2Activity extends AppCompatActivity {
private Button imageValidate;
int indicatorPositionStart = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
imageValidate = findViewById(R.id.buttonValidate);
imageValidate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent2 = new Intent(Main2Activity.this, MainActivity.class);
intent2.putExtra("indicatorPositionStartt", indicatorPositionStart );
startActivity(intent2);
}
});
}
public class MainActivity extends AppCompatActivity{
int id = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView3);
if (id != 0) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);
textView.setText(indicatorPositionStart);
}
}
}
先感谢您。
问题是您在从附加项中获取值之前正在检查值,请参阅第二个活动中的以下行:
// you are using it here, before getting the value
if (id != 0) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);
textView.setText(indicatorPositionStart);
}
}
MainActivity
另一个问题是您没有填写 id 字段。 我修复了它,只需用你的第二个活动替换这个:
public class MainActivity extends AppCompatActivity{
int id = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView3);
// get the value first
id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
// then use it
if (id != 0) {
String indicatorPositionStart = String.valueOf(id);
textView.setText(indicatorPositionStart);
}
}
}
在您的 MainActivity 中,删除此检查if (id !=0 )
因为活动开始您设置了id =0
的值,因此if (id !=0 )
this if 永远不会为真。
发送数据:
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("arg", YourData);
startActivity(intent);
接收数据:
String data = getIntent().getExtras().getString("arg");
更新
删除if( id != 0)
并使用if(getIntent().hasExtra("indicatorPositionStartt"))
像这样:
if (getIntent().hasExtra("indicatorPositionStartt")) {
int id = getIntent().getExtras().getInt("indicatorPositionStartt", 0);
String indicatorPositionStart = String.valueOf(id);
textView.setText(indicatorPositionStart);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.