gpt4 book ai didi

java - Arraylist 只检索最后一个值

转载 作者:行者123 更新时间:2023-12-01 15:53:36 24 4
gpt4 key购买 nike

您好,我正在使用 Parcelable 将数组列表从一个 Activity 传递到另一个 Activity ..

现在的问题是,当我单击 BILL 时,所有行都会填充数组列表的最后一个值。所以我想我无法在调用 Activity 中检索整个数组列表...

这是相关代码..

SpinPizza.java

public class SpinPizza extends Activity{
store temp= new store();

int i=0;

ArrayList<store> B = new ArrayList<store>();


//oncreate method



int n=Integer.parseInt(edittext.getText().toString());

temp.setOrder(s.getSelectedItem().toString(), s1.getSelectedItem().toString(),n);

B.add(temp);

TextView objText=(TextView) findViewById(R.id.pl);

TextView objText1=(TextView) findViewById(R.id.pl2);

objText.setText(B.get(i).getPizzaName());

objText1.setText(temp.getPizzaSize());

i++;




});

Button next1 = (Button) findViewById(R.id.bill);

next1.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

Intent myIntent = new Intent(view.getContext(), Bill.class);

myIntent.putParcelableArrayListExtra("myclass",B);

startActivityForResult(myIntent, 0);

}

});

}

比尔.java

public class Bill extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.setContentView(R.layout.calc);
ArrayList<store> B1 = new ArrayList<store>();

store temp1=new store();

Bundle bj=getIntent().getExtras();


B1=bj.getParcelableArrayList("myclass");

TableLayout tl = (TableLayout)findViewById(R.id.myTable);



for(int i=0;i<B1.size();i++)
{
TableRow tr = new TableRow(this);
tr.setId(100+i);
temp1=B1.get(i);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));



TextView b = new TextView(this);
b.setText(temp1.getPizzaName());
b.setId(200+i);

TextView b1 = new TextView(this);
b1.setText(temp1.getPizzaSize());
b1.setId(300+i);

TextView b2 = new TextView(this);
b2.setText(String.valueOf(temp1.getQuantity()));
b2.setId(400+i);


b.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(b);

b1.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(b1);



b2.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));

tr.addView(b2);



tl.addView(tr,new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));


}}

}

请帮忙。

最佳答案

我看不到 temp 的创建,也看不到 temp 修饰符行中使用的迭代 temp.setOrder(s.getSelectedItem( ).toString(), s1.getSelectedItem().toString(),n);。看来您没有在那里使用 i 这就是为什么您有相同的记录。

关于java - Arraylist 只检索最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511037/

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