想要打印完整的Array.asList,只打印一行

时间:2018-02-05 14:37:38

标签: java android

我正在Android Studio中开发一个应用程序,用于打印您可以使用给定数量的货币购买的每个项目的数量。它在Eclipse中作为Java程序运行时打印得完美无瑕,但我无法在TextView Box中打印多行。

我注意到它会选择你能负担得起的最昂贵的物品1并单独打印,这让我相信它贯穿整个列表并且只打印最后一个经过实惠的物品。我已经阅读过有关需要使用StringBuilder等的信息,但是我发现很少有关于如何将Array.asList转换为此信息的信息。这是我的代码。

gCalc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText diamondInput = (EditText) findViewById(R.id.diamondInput);

            try {
                int diamonds = Integer.parseInt(diamondInput.getText().toString());
                List<Gifts> gift = Arrays.asList(new Gifts[]{new Gifts("Gold star", 10), new Gifts("Love Bear", 10), new Gifts("Lillies", 10), new Gifts("Box Of Chocolate", 20), new Gifts("Taco", 20), new Gifts("Thumbs Up", 30), new Gifts("Panda", 40), new Gifts("Beer", 40), new Gifts("Patriot", 52), new Gifts("Eagle", 52), new Gifts("Gold Chain", 80), new Gifts("Roses", 100), new Gifts("Champagne", 100), new Gifts("Snow", 100), new Gifts("Candy", 100), new Gifts("Kiss", 200), new Gifts("Candy Hearts", 250), new Gifts("Peach", 300), new Gifts("EggPlant", 300), new Gifts("Fireworks", 500), new Gifts("GemDrop", 600), new Gifts("Crown", 600), new Gifts("Cupcakes", 700), new Gifts("Heart Balloon", 800), new Gifts("Sports Car", 1000), new Gifts("Smoke Rings", 1000), new Gifts("purple Diamond", 2500), new Gifts("Cupid", 5000), new Gifts("Gold Watch", 5000), new Gifts("Castle", 5000), new Gifts("Yacht", 10000), new Gifts("Jet", 20000)});


                double coins = (double) diamonds / 2.5D;
                Iterator var5 = gift.iterator();

                while(var5.hasNext()) {
                    Gifts Gifts = (Gifts)var5.next();
                    int qty = (int)Gifts.getQty(coins);
                        if(qty > 0) {
                        result.setText("You can buy " + qty + " " + Gifts.name);
                                    }
                }

            }
            catch (Exception e) {
                // friendly error to the user: field is incorrect
            }

我需要它打印为EX:

你可以购买X量的Y.  你可以购买X量的Y.  你可以购买X量的Y.   :结束  打印可以购买的每件商品及其数量。

1 个答案:

答案 0 :(得分:0)

如果您查看Android API文档(https://developer.android.com/reference/android/widget/TextView.html),请注意以下内容:

void setText (CharSequence text) - 设置 要显示的文字。 - 这意味着每次调用此方法时,新文本覆盖旧的。

您似乎正在寻找append()方法:

void append(CharSequence text) - 方便的方法将追加指定的文本添加到TextView的显示缓冲区,如果它尚不可编辑则将其升级为EDITABLE。 {{1方法不会覆盖以前设置的文本。

将文本附加到先前存储在append()中的另一种方法是组合这些方法:

TextView