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

当我按下我的按钮,我希望它随机选择食物的地方,从7个亚洲的地方之一。当我的随机数显示为:2时,我会打印出来

“今天你将在空吃”

如何让它打印出餐厅的名称并将其链接到新的java页面以显示其信息

这是我声明数组的地方:

 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();