Android 主/后退按钮意图因丢失额外的意图而导致错误
我使用一个简单的意图来启动一个新的活动,它会自动创建一个主/主按钮。当我按下这个按钮时,它将返回到称为新活动的活动。当我按下此按钮时,此活动缺少信息,因为此活动也是根据意图创建的。设备backbutton正确地完成了这项工作 所以它看起来像是MainActivity>SearchResultActivity>InfoResultActivityAndroid 主/后退按钮意图因丢失额外的意图而导致错误,android,android-intent,Android,Android Intent,我使用一个简单的意图来启动一个新的活动,它会自动创建一个主/主按钮。当我按下这个按钮时,它将返回到称为新活动的活动。当我按下此按钮时,此活动缺少信息,因为此活动也是根据意图创建的。设备backbutton正确地完成了这项工作 所以它看起来像是MainActivity>SearchResultActivity>InfoResultActivity @Override protected void onCreate(Bundle savedInstanceState) {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_searchresult);
//Given values from search
village = getIntent().getExtras().getString("VILLAGE_SEARCH");
restaurant = getIntent().getExtras().getString("RESTAURANT_SEARCH");
theme = getIntent().getExtras().getInt("THEME_SEARCH");
afhaal = getIntent().getExtras().getBoolean("AFHAAL_CHECK");
bezorg = getIntent().getExtras().getBoolean("BEZORG_CHECK");
uiteten = getIntent().getExtras().getBoolean("UITETEN_CHECK");
....
....
....
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Intent myIntent = new Intent(SearchResultActivity.this, InfoActivity.class);
myIntent.putExtra("RESTAURANT_CLICKED", displayData[position].name);
myIntent.putExtra("RESTAURANT_SEARCHED", restaurant);
myIntent.putExtra("THEME_SEARCH", theme);
myIntent.putExtra("VILLAGE_SEARCH", village);
myIntent.putExtra("AFHAAL_CHECK", afhaal);
myIntent.putExtra("BEZORG_CHECK", bezorg);
myIntent.putExtra("UITETEN_CHECK", uiteten);
startActivityForResult(myIntent,0);
}
});
.....
....
我可以使用按钮从SearchResultsActivity返回到MainActivity,因为它不需要onCreate中的信息。SearchResultActivity需要来自MainActivity的信息
主要活动
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
// Perform action on click
String selectedVillage = villagesSpinner.getSelectedItem().toString();
String selectedTheme = themesSpinner.getSelectedItem().toString();
String selectedRestaurant = autocompletetextview.getText().toString();
Log.w("tag", "" + selectedVillage + " " + selectedTheme + " " + selectedRestaurant + " " + afhaalCheck.isChecked() + " " + bezorgCheck.isChecked() + " " + uitetenCheck.isChecked());
Intent myIntent = new Intent(MainActivity.this, SearchResultActivity.class);
for(int i = 0; i < allFeeds.size(); i++)
{
if(allFeeds.get(i).name.equals(selectedTheme))
{
myIntent.putExtra("THEME_SEARCH", allFeeds.get(i).idNumb);
}
}
myIntent.putExtra("VILLAGE_SEARCH", selectedVillage);
myIntent.putExtra("RESTAURANT_SEARCH", selectedRestaurant);
myIntent.putExtra("AFHAAL_CHECK", afhaalCheck.isChecked());
myIntent.putExtra("BEZORG_CHECK", bezorgCheck.isChecked());
myIntent.putExtra("UITETEN_CHECK", uitetenCheck.isChecked());
startActivity(myIntent);
}
});
@Override
public void finish()
{
// Prepare data intent
Intent myIntent = new Intent();
myIntent.putExtra("THEME_SEARCH", getIntent().getExtras().getString("THEME_SEARCH"));
myIntent.putExtra("VILLAGE_SEARCH", getIntent().getExtras().getString("VILLAGE_SEARCH"));
myIntent.putExtra("RESTAURANT_SEARCH", getIntent().getExtras().getString("RESTAURANT_SEARCH"));
myIntent.putExtra("AFHAAL_CHECK",getIntent().getExtras().getString("AFHAAL_CHECK") );
myIntent.putExtra("BEZORG_CHECK", getIntent().getExtras().getString("BEZORG_CHECK"));
myIntent.putExtra("UITETEN_CHECK",getIntent().getExtras().getString("UITETEN_CHECK") );
// Activity finished ok, return the data
setResult(RESULT_OK, myIntent);
super.finish();
}