首页 > 解决方案 > 使用 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);
 }}

标签: javaandroid-studio

解决方案


只需在每次单击时将单击的项目添加到 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);

                }
            }
    );
}

推荐阅读