Java 我如何让我的代码从一个随机生成的数字食品店挑选?
当我按下我的按钮,我希望它随机选择食物的地方,从7个亚洲的地方之一。当我的随机数显示为:2时,我会打印出来 “今天你将在空吃” 如何让它打印出餐厅的名称并将其链接到新的java页面以显示其信息 这是我声明数组的地方:Java 我如何让我的代码从一个随机生成的数字食品店挑选?,java,android,android-studio,android-fragments,random,Java,Android,Android Studio,Android Fragments,Random,当我按下我的按钮,我希望它随机选择食物的地方,从7个亚洲的地方之一。当我的随机数显示为:2时,我会打印出来 “今天你将在空吃” 如何让它打印出餐厅的名称并将其链接到新的java页面以显示其信息 这是我声明数组的地方: private void createResArray() { Restaurant chacha = new Restaurant("Cha Cha", FoodCategory.Asian); Restaurant sammy = new Restaurant
private void createResArray() {
Restaurant chacha = new Restaurant("Cha Cha", FoodCategory.Asian);
Restaurant sammy = new Restaurant("Sammy Chom's K-Town", FoodCategory.Asian);
Restaurant sushianddinsum = new Restaurant("Sushi & Dinsum", FoodCategory.Asian);
Restaurant masterwok = new Restaurant("Master Wok", FoodCategory.Asian);
Restaurant chinastar = new Restaurant("China Star", FoodCategory.Asian);
Restaurant phohasaigon = new Restaurant("Pho Ha Saigon", FoodCategory.Asian);
Restaurant taiAli = new Restaurant("Tai’s Ali's Middle East Food", FoodCategory.Middle_Eastern);
Restaurant aliMiddle = new Restaurant("Ali's Middle East Food", FoodCategory.Middle_Eastern);
Restaurant nycHalal = new Restaurant("NYC Halal", FoodCategory.Middle_Eastern);
resArray = new SparseArray<Restaurant>();
resArray.append(0, chacha);
resArray.append(1, sammy);
resArray.append(2, sushianddinsum);
resArray.append(3, masterwok);
resArray.append(4, chinastar);
resArray.append(5, phohasaigon);
resArray.append(6, taiAli);
resArray.append(7, aliMiddle);
resArray.append(8, nycHalal);
resCount = 9;
}
}您需要重写
Restaurant
类中的toString()
方法,使其返回更合理的内容。您需要重写toString()
方法,使其返回更合理的内容。您实际上是在尝试打印整个餐厅对象。您只想打印名称。我不知道你的餐厅课程是什么样子,但如果是这样的话:
public class Restaurant
{
String name;
FoodCategory category;
public Restaurant(String name, FoodCategory category)
{
this.name = name;
this.category = category;
}
public String getName()
{
return name;
}
}
然后你可以做:
String randomRestaurantName = resArray.get(randomNumber).getName();
实际上,您正在尝试打印整个餐厅对象。您只想打印名称。我不知道你的餐厅课程是什么样子,但如果是这样的话:
public class Restaurant
{
String name;
FoodCategory category;
public Restaurant(String name, FoodCategory category)
{
this.name = name;
this.category = category;
}
public String getName()
{
return name;
}
}
然后你可以做:
String randomRestaurantName = resArray.get(randomNumber).getName();
我不建议为单个位置所需的输出重写toString。相反,他应该有一个以字符串形式返回名称的函数,比如getName(),谢谢你的响应:)我只是用另一种方法修复了它。我不建议在一个地方为需要的输出重写toString。相反,他应该有一个以字符串形式返回名称的函数,比如getName(),谢谢你的回答:)我刚刚用另一种方法修复了它我更改了那行,但是现在我得到的是“null”而不是Resturant@77ad49dCan你发布了你的类结构吗?你有一个属性getName;和方法getName()。删除属性并仅保留方法getName(),然后使用该方法。同样,getName()方法应该返回name。非常感谢!我更改了那行,但现在我得到的是“null”而不是Resturant@77ad49dCan你发布了你的类结构吗?你有一个属性getName;和方法getName()。删除属性并仅保留方法getName(),然后使用该方法。同样,getName()方法应该返回name。非常感谢!
String randomRestaurantName = resArray.get(randomNumber).getName();