java - 使用 listview 并为下一节课添加数据
问题描述
所以,我一直在尝试开发一个应用程序,您可以在其中自己订购三明治。到目前为止,我已经使用列表视图管理了所有内容,您可以订购什么类型的三明治等。
但我不确定下一步是当有人单击某个项目时,该项目必须以某种方式保存。我在 Arraylist 中的猜测?
所以这就是我需要帮助的,以某种方式记录点击,以便用户可以看到他们点击了哪些项目并在下一个屏幕上确认购买(这将是下一堂课)。
我看到了这个 youtube 视频,https://www.youtube.com/watch?v= VBN3LMb7rss&t= 166s 这就是我想要“存储”“数据”或类似内容的方式。
亲切的问候,这是我的代码。
package com.example.boo.cafestudent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class Order extends AppCompatActivity {
//ListView mackorListView;
//ArrayList <string> order_item_name;
// public final ArrayList<String> bestallning = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.orderactivity);
String[] mackor ={"Ostsmörgås","Skinksmörgås","Ost och Skinksmörgås", "Salamismörgås","Räksmörgås",
"Rensmörgås", "Älgsmörgås", "Köttbullesmörgås"};
ListAdapter johansadapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mackor);
//hämtar ListView
ListView mackorListView = (ListView) findViewById(R.id.ListViewMackor);
//Hämtar data från array stringen
// final String[] array_mackor = getResources().getStringArray(R.array.arraymackor);
//skapandet av en array adapter
//Själva adaptern till ListView
mackorListView.setAdapter(johansadapter);
//kopplar onClicklistener till Listvie
mackorListView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String mackor = String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(Order.this, mackor + " har lagts till", Toast.LENGTH_LONG).show();
}
}
);
}
public void onClick (View View){
Intent i = new Intent (getApplicationContext(), Confirmation.class);
//Intent.putExtra("bestallning",bestallning);
startActivity(i);
}}
解决方案
只需在每次单击时将单击的项目添加到 Arraylist 中。在顶部声明一个数组列表作为实例变量。代码可能看起来像这样。如果您想在另一个活动或类中访问数组的值,请使用 putExtra() 或声明 arraylist public static。
ArrayList<String> clickedSandwiches = new ArrayList<String>();
mackorListView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String mackor = String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(Order.this, mackor + " har lagts till", Toast.LENGTH_LONG).show();
clickedSandwiches.add(mackor);
}
}
);
}
推荐阅读
- laravel - 查询日期时间除分钟和秒外都相等的模型 (Laravel Eloquent)
- lua - 动态(基于 prev protofield 值) Protofield valuestring based
- python - TensorFlow:在 session.run() 中访问更新的变量值
- amazon-cloudformation - Cloudformation - ECRImageURI 未能满足约束
- flutter - APT:错误:找不到属性 android:usesPermissionFlags
- python - 调整 Facebook-Prophet 模型以更准确地考虑月内季节性
- node.js - 在sequelize中使用外键删除多个表中的记录
- android - Flutter 中的反向列表
- python - 只接受某组字母的元组
- javascript - 意外的标识符“getProject”。预期的 ';' 在异步变量声明之后