Soru & Cevap

Spinner içinde tek bir buton koyma ...

04.11.2016 - 05:31

Merhaba arkadaşlar, bir spinnerın içinde veri tabanından veri çekiyorum listeleniyor.Listenin sonunda tek bir insert butonu olsun istiyorum bunu nasıl yapabilirim?

4 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user gmyucalfarukeren
gmyucalfarukeren
19.02.2023 - 06:59

Selamlar Beyza, 

Spinner'dan seçilen verileri bir listeye ekliyorsanız, listenin sonuna bir "Ekle" veya "Kaydet" butonu ekleyebilirsiniz. Bu butona tıklandığında, listenin tamamını veritabanına kaydedebilirsiniz

Örneğin, Android Studio'da bir RecyclerView kullanarak liste görüntüleyebilirsiniz. RecyclerView'a bir ViewHolder ekleyerek, sonunda bir buton gösterebilirsiniz. Bu butona tıklandığında, seçilen tüm öğeleri bir listeye ekleyebilir ve veritabanına kaydedebilirsiniz

Aşağıdaki örnek kod, seçilen öğeleri bir liste olarak alır ve sonunda bir "Kaydet" butonu ekler

 

// Veritabanı bağlantısı
private SQLiteDatabase db;

// Spinner'dan seçilen öğeleri tutacak liste
private List<String> selectedItems = new ArrayList<>();

// Liste görüntüleyicisi
private RecyclerView recyclerView;

// Listeye öğe ekleme metodunu çağıran buton
private Button saveButton;

// Liste görüntüleyicisi için veri adaptörü
private MyAdapter adapter;

// Seçilen öğeleri listeye ekleyen metod
private void addSelectedItem(String item) {
    selectedItems.add(item);
}

// Liste görüntüleyicisini ve kaydetme butonunu hazırlayan metod
private void prepareRecyclerViewAndButton() {
    recyclerView = findViewById(R.id.recyclerView);
    saveButton = findViewById(R.id.saveButton);

    // RecyclerView için veri adaptörü oluşturun
    adapter = new MyAdapter(this, selectedItems);

    // RecyclerView'a adaptörü atayın
    recyclerView.setAdapter(adapter);

    // Kaydetme butonuna tıklandığında çağrılacak metod
    saveButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Seçilen öğeleri veritabanına kaydedin
            saveSelectedItemsToDatabase(selectedItems);
        }
    });
}

// Seçilen öğeleri veritabanına kaydeden metod
private void saveSelectedItemsToDatabase(List<String> selectedItems) {
    for (String item : selectedItems) {
        ContentValues values = new ContentValues();
        values.put("item_name", item);
        db.insert("table_name", null, values);
    }
}

// RecyclerView için veri adaptörü
private class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    private Context context;
    private List<String> items;

    public MyAdapter(Context context, List<String> items) {
        this.context = context;
        this.items = items;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        String item = items.get(position);
        holder.itemTextView.setText(item);
    }

    @Override
    public int getItemCount() {
        return items.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        public TextView itemTextView;

        public ViewHolder(View itemView) {
            super(itemView);
            itemTextView = itemView.findViewById(R.id.itemTextView);
        }
    }
}