gpt4 book ai didi

java - Android ArrayList,每行都有自定义数组

转载 作者:行者123 更新时间:2023-12-02 10:10:13 24 4
gpt4 key购买 nike

How can I write the array on the ItemsScreenActivity activity, so that when pressing on each element, its corresponding values are added to database?

现在的问题是,无论我按哪个元素,只有可乐 500 200 会添加到数据库中(因为实际上,代码只执行此操作)。 我想在屏幕上显示一个项目列表,我为其创建了一个 ArrayList。数组列表中的每个项目对应于一个包含三个元素的自定义行(我为其创建了一个特殊的布局和自定义适配器)。

public class ItemsScreenActivity extends AppCompatActivity {

MyDBHandler myDb = new MyDBHandler(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.items_screen);

ListView ListView = (ListView)findViewById(R.id.myList);

final ArrayList<DataModel> items = new ArrayList<DataModel>();

final DataModel coke = new DataModel("Coke", "500", "200");
items.add(cafea);
final DataModel pepsi = new DataModel("Pepsi", "500", "200");
items.add(espresso);

ListAdapter myAdapter = new CustomAdapter(this, R.layout.custom_row, items);
ListView myList = (ListView) findViewById(R.id.myList);
myList.setAdapter(myAdapter);

myList.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String itemType = coke.getitemType().toString();
String quantity = coke.getCantBautura().toString();
String calories = coke.getCantcalories().toString();
AddData(itemType, quantity, calories);
}
}
);}
public void AddData(String itemType, String quantity, String calories) {
boolean insertData = myDb.addData(itemType, quantity, calories);
}

最佳答案

你需要改变

    final ArrayList<DataModel> items = new ArrayList<DataModel>();
final DataModel coke = new DataModel("Coke", "500", "200");
items.add(cafea);
final DataModel pepsi = new DataModel("Pepsi", "500", "200");
items.add(espresso);

        final ArrayList<DataModel> items = new ArrayList<DataModel>();
final DataModel coke = new DataModel("Coke", "500", "200");
items.add(coke );
final DataModel pepsi = new DataModel("Pepsi", "500", "200");
items.add(pepsi );

目前,在您的 onclick 中,您总是将可乐数据添加到数据库中。获取点击的对象并添加它。

 DataModel dataModel = (DataModel) myListView.getItemAtPosition(position);
// dataModel.name // "Coke"
// dataModel.value // "500"

关于java - Android ArrayList,每行都有自定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55053740/

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