使用 java 使用 android 工作室将信息从主要 activity 传递到新的 activity
Passing info into a new activity from main activity with android studio using java
我是 Android 工作室的新手,但我之前曾与 java 合作过。这也是我第一次使用 MongoDB Realm,这是一场艰苦的战斗 me.I 我正在开发一个应用程序,用户选择一个单选按钮,然后检查数据库中的慈善机构类别(在 main activity 中),它需要将该信息提交给下一个 activity,然后将慈善机构列表打印到下一个 activity(垂直滚动)。我想知道如何最好地实现它。任何意见或建议将不胜感激。我想我只是不确定从这里去哪里。我还有一个文件,其中包含来自数据库的对象模型和一个 ToString 方法。
这是我的 mainactivity 单选按钮和 submitbtn:
submitbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (medicalRadio.isChecked()) {
RealmResults<NationalCharity> medicalcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Medical").findAll();
}
else if (envirRadio.isChecked()) {
RealmResults<NationalCharity> envircharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Environmental_Animal").findAll();
}
else if (hserviceRadio.isChecked()) {
RealmResults<NationalCharity> hservicecharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Human_Services").findAll();
}
else if (educationRadio.isChecked()) {
RealmResults<NationalCharity> educationcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Education").findAll();
}
else if (publicaRadio.isChecked()) {
RealmResults<NationalCharity> publicacharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Public_Affairs").findAll();
}
else if (cultureRadio.isChecked()) {
RealmResults<NationalCharity> cultureharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Culture_Arts_Humanities").findAll();
}
else if (domesticvRadio.isChecked()) {
RealmResults<NationalCharity> domesticvcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Domestic_Violence").findAll();
}
else if (hrightsRadio.isChecked()) {
RealmResults<NationalCharity> hrightscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Human_Rights").findAll();
}
else if (homelessRadio.isChecked()) {
RealmResults<NationalCharity> homelesscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Homelessness").findAll();
} else if (religionRadio.isChecked()) {
RealmResults<NationalCharity> religiouscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Religious").findAll();
} else if (youthRadio.isChecked()) {
RealmResults<NationalCharity> youthcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Youth").findAll();
}
}
Intent intent = new Intent(MainActivity.this, ResultsActivity.class);
});
这是我的 To String 方法:
public String toString() {
results = "Charity name: " + Charity_name + " " + "Category: " + Category + "\n" +
"Address: " + Address + " " + "City: " + City + " " + "State: " + State + " " +
"Zip code: " + Zipcode + "\n" + "Mission Statement: " + Mission_statement + "\n" +
"Web Address: " + Web_address;
return results;
}
将信息传递给新 Activity 的一种方法是向 Intent 添加额外数据。
Intent intent = new Intent(MainActivity.this, ResultsActivity.class);
intent.putExtra("KEY_TO_DATA", result);
startActivity(intent);
检索新Activity中的数据:
...inside onCreate...
if (savedInstanceState != null) {
} else {
Intent intent = getIntent();
if (intent != null) {
resultString = intent.getStringExtra("KEY_TO_DATA")
}
}
其中 KEY_TO_DATA 可以是您想要的任何内容。您还可以将整数和其他数据类型传递给 Activity。只需确保使用适当的 get???Extra 检索它即可。 IE。 intent.getIntExtra("KEY_TO_DATA")
还有其他方法可以像使用 ViewModel 一样传递数据,但这是一个更复杂的答案。
我是 Android 工作室的新手,但我之前曾与 java 合作过。这也是我第一次使用 MongoDB Realm,这是一场艰苦的战斗 me.I 我正在开发一个应用程序,用户选择一个单选按钮,然后检查数据库中的慈善机构类别(在 main activity 中),它需要将该信息提交给下一个 activity,然后将慈善机构列表打印到下一个 activity(垂直滚动)。我想知道如何最好地实现它。任何意见或建议将不胜感激。我想我只是不确定从这里去哪里。我还有一个文件,其中包含来自数据库的对象模型和一个 ToString 方法。
这是我的 mainactivity 单选按钮和 submitbtn:
submitbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (medicalRadio.isChecked()) {
RealmResults<NationalCharity> medicalcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Medical").findAll();
}
else if (envirRadio.isChecked()) {
RealmResults<NationalCharity> envircharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Environmental_Animal").findAll();
}
else if (hserviceRadio.isChecked()) {
RealmResults<NationalCharity> hservicecharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Human_Services").findAll();
}
else if (educationRadio.isChecked()) {
RealmResults<NationalCharity> educationcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Education").findAll();
}
else if (publicaRadio.isChecked()) {
RealmResults<NationalCharity> publicacharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Public_Affairs").findAll();
}
else if (cultureRadio.isChecked()) {
RealmResults<NationalCharity> cultureharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Culture_Arts_Humanities").findAll();
}
else if (domesticvRadio.isChecked()) {
RealmResults<NationalCharity> domesticvcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Domestic_Violence").findAll();
}
else if (hrightsRadio.isChecked()) {
RealmResults<NationalCharity> hrightscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Human_Rights").findAll();
}
else if (homelessRadio.isChecked()) {
RealmResults<NationalCharity> homelesscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Homelessness").findAll();
} else if (religionRadio.isChecked()) {
RealmResults<NationalCharity> religiouscharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Religious").findAll();
} else if (youthRadio.isChecked()) {
RealmResults<NationalCharity> youthcharity = uiThreadRealm.where(NationalCharity.class).equalTo("Category","Youth").findAll();
}
}
Intent intent = new Intent(MainActivity.this, ResultsActivity.class);
});
这是我的 To String 方法:
public String toString() {
results = "Charity name: " + Charity_name + " " + "Category: " + Category + "\n" +
"Address: " + Address + " " + "City: " + City + " " + "State: " + State + " " +
"Zip code: " + Zipcode + "\n" + "Mission Statement: " + Mission_statement + "\n" +
"Web Address: " + Web_address;
return results;
}
将信息传递给新 Activity 的一种方法是向 Intent 添加额外数据。
Intent intent = new Intent(MainActivity.this, ResultsActivity.class);
intent.putExtra("KEY_TO_DATA", result);
startActivity(intent);
检索新Activity中的数据:
...inside onCreate...
if (savedInstanceState != null) {
} else {
Intent intent = getIntent();
if (intent != null) {
resultString = intent.getStringExtra("KEY_TO_DATA")
}
}
其中 KEY_TO_DATA 可以是您想要的任何内容。您还可以将整数和其他数据类型传递给 Activity。只需确保使用适当的 get???Extra 检索它即可。 IE。 intent.getIntExtra("KEY_TO_DATA")
还有其他方法可以像使用 ViewModel 一样传递数据,但这是一个更复杂的答案。