我的应用程序开头有一个菜单,允许用户选择特定类型的饮食,我想将其保存为一个字符串,以便在另一个类中使用,该类可以找到附近的餐馆、咖啡馆等。
例如,如果用户选择“Vegan”卡片,那么我希望能够在其他类中使用“Vegan”,但如果是“Kosher”,我想在其他类中使用字符串“kosher”。
我尝试创建一个 DietChoice
类来设置/获取饮食,但这不起作用,因为我无法在我的 MapsActivity 中创建一个
类。 HomeMenu
对象
我怎样做才能在用户点击 Vegan 卡片时在我的 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;
}
最佳答案
您好,只需将 Extra 放入 intent 中,稍后在您的下一个 Activity 中提取它。不需要任何 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 Activity 中的字符串,请使用以下代码
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");
}
关于java - 根据用户选择的选项在另一个类中使用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54078257/