我在应用程序的开头有一个菜单,允许用户选择特定的饮食类型,我想将其另存为字符串,以供其他类使用,以查找附近的餐馆,咖啡馆等。
例如,如果用户选择“ Vegan”卡,那么我希望能够在其他类别中使用“ Vegan”,但是如果它是“ Kosher”,则我想在其他类别中使用字符串“ kosher”。
我尝试创建一个DietChoice
类来设置/获取饮食,但这没有用,因为我无法在我的HomeMenu
类中创建一个MapsActivity
对象。
我如何做到这一点,以便用户单击“素食主义者”卡时可以在MapsActivity
类中使用字符串“ Vegan”?
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
public class HomeMenu extends AppCompatActivity implements View.OnClickListener {
private CardView veganMenu,halalMenu,vegeterianMenu,kosherMenu;
private DietChoice diet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_menu);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
public void onClick(View v) {
Intent intent = new Intent(this,Home.class)
switch (v.getId()) {
case R.id.vegan_menu:
intent.putExtra("STRING_I_NEED", "vegan");
startActivity(intent);
break;
case R.id.vegetarian_menu:
intent.putExtra("STRING_I_NEED", "vegetarian");
startActivity(intent);
break;
case R.id.halal_menu:
intent.putExtra("STRING_I_NEED", "halal");
startActivity(intent);
break;
case R.id.kosher_menu:
intent.putExtra("STRING_I_NEED", "kosher");
startActivity(intent);
break;
}
答案 0 :(得分:1)
您好,只需要放下意图,然后在下一个活动中将其提取即可。不需要任何Pojo。
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
public class HomeMenu extends AppCompatActivity implements View.OnClickListener {
private CardView veganMenu,halalMenu,vegeterianMenu,kosherMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_menu);
getSupportActionBar().setDisplayShowHomeEnabled(true);
veganMenu = (CardView) findViewById(R.id.vegan_menu);
halalMenu = (CardView) findViewById(R.id.vegetarian_menu);
vegeterianMenu = (CardView) findViewById(R.id.halal_menu);
kosherMenu = (CardView) findViewById(R.id.kosher_menu);
veganMenu.setOnClickListener(this);
halalMenu.setOnClickListener(this);
vegeterianMenu.setOnClickListener(this);
kosherMenu.setOnClickListener(this);
}
public void onClick(View v) {
Intent intent = new Intent(this,Home.class)
switch (v.getId()) {
case R.id.vegan_menu:
intent.putExtra("STRING_I_NEED", "vegan");
startActivity(intent);
break;
case R.id.vegetarian_menu:
intent.putExtra("STRING_I_NEED", "vegetarian");
startActivity(intent);
break;
case R.id.halal_menu:
intent.putExtra("STRING_I_NEED", "halal");
startActivity(intent);
break;
case R.id.kosher_menu:
intent.putExtra("STRING_I_NEED", "kosher");
startActivity(intent);
break;
}
}
}
要在Home活动中检索字符串,请使用下面的代码
String newString;
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
} else {
newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}