gpt4 book ai didi

java - Stringbuilder 无法正常工作

转载 作者:太空狗 更新时间:2023-10-29 16:41:16 24 4
gpt4 key购买 nike

我有一个奇怪的问题。这是代码:

public class TaxiDetails extends Activity{

ArrayList<Bus> listBus = new ArrayList<Bus>();
ArrayList<Taxi> listTaxi = new ArrayList<Taxi>();
TextView detalji, title;
ImageView backBtn;
String strType;
StringBuilder builder = new StringBuilder();

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.numbers_details);
detalji = (TextView) findViewById(R.id.txtNumbDetails);
title = (TextView) findViewById(R.id.txtTitleNumbers);
detalji.setTypeface(Typeface.DEFAULT_BOLD);
Typeface TF = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Black.ttf");
backBtn = (ImageView) findViewById(R.id.backBtn);
title.setTypeface(TF);

Intent in = getIntent();
strType = in.getStringExtra("type");

if (strType.equals("TAXI")){
listTaxi = (ArrayList<Taxi>) in.getSerializableExtra("TAXI");
title.setText("Taxi");
} else if (strType.equals("BUS")){
listBus = (ArrayList<Bus>) in.getSerializableExtra("BUS");
title.setText("BUS");
}

if (listBus != null) {
for (int i = 0; i < listBus.size(); i++) {
builder = new StringBuilder();
String naslov = listBus.get(i).getTitle();
String opis = listBus.get(i).getDescription();
builder.append(naslov);
builder.append("\n");
builder.append(Html.fromHtml(opis));
builder.append("\n");
}
}

if (listTaxi != null) {
for (int i = 0; i < listTaxi.size(); i++) {
builder = new StringBuilder();
String naslov = listTaxi.get(i).getTitle();
String opis = listTaxi.get(i).getDescription();
builder.append(naslov);
builder.append("\n");
builder.append(Html.fromHtml(opis));
builder.append("\n");
}
}

detalji.setText(builder.toString().trim());
}
}

我从之前的 Activity 中传递了一个数组。 Taxi 或 Bus 对象数组,具体取决于用户的选择。但是,对于 Taxis,这非常有效。对于 Bus,它只显示数组的最后一个对象,即使调试器显示 listBus 包含 2 个对象。我在 Google Map Activity 中使用相同的 listBus,它可以显示所有对象的位置,那么为什么它在这里不起作用?

最佳答案

您将在循环的每次迭代中创建一个新的 StringBuilder。它甚至不应该对 Taxis 起作用,因为你在那里做同样的事情。

只需将下面的语句移到 for 循环之外:

builder = new StringBuilder();

或者,您最好删除赋值,因为您已经在实例变量声明中对其进行了初始化。所以你在这里不需要它。

关于java - Stringbuilder 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17463295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com