Soru & Cevap

ListView Favori Ekleme

20.03.2016 - 01:41

Merhaba arkadaşlar. Elle oluşturduğum listview den context menu ile favorilere ekleme seçeneği koymak istiyorum. Bunun için iki fragment var. şu an 1. fragmentte elle oluşturduğum listview var. Favorilere basılınca 2. fragment açılacak ve eklenilen favoriler bu kısımda gözükecek. Var mı bilen?

60 Görüntülenme

1 Cevap

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

picture-74639-1457849578.jpg
rankend5
27.05.2016 - 09:15

Custom ListView ile kolayca yapabilirsiniz.

Öncelikle şu konuyu bir inceleyin.Ben örnek göstererek size favori kısmın dan biraz bahesedeyim.

Ayrı bir layout oluşturuyoruz bu bizim list viewmizda görünecek olan layout ayrı bir tasarım yapıyoruz kısacası

örnek : (list_fav.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="yazi"
        android:id="@+id/isimText"
        android:paddingTop="10dp"
        android:paddingLeft="10dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:src="@drawable/abc_btn_rating_star_on_mtrl_alpha"
        android:background="#242424" />

</RelativeLayout>

listView imizi da Mainclasımızda tanımlıyoruz.Ben elemanlarımı arraylist ile ekledim.

Main.java

package com.example.barankaraboa.listfavoriteapp;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageButton;
import android.widget.ListView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    ListView list ;
    customListAdapter adapter ;
    ImageButton btn ;
    ArrayList<String> liste = new ArrayList<String>();


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


        list = (ListView) findViewById(R.id.listView);
        liste.add("baran");
        liste.add("asdjasd");
        adapter = new customListAdapter(this,liste);

        list.setAdapter(adapter);
        btn = (ImageButton) findViewById(R.id.imageButton);



    }
}

Burasını geçtikten sonra asıl önemli olan custom adapter kısmı. Bunu yapabilmek için BaseAdapter sınıfını iyi bilmemiz gerekiyor.Bu sınıfımızda list_fav.xml'de eklediğimiz komponentleri kullanıcaz.

Bir yapılandırıcı oluşturuyorum degerlerimi yapılandırıcı üzerinden gönderiyorum bu sayede eleman gönderirken sürekli nesne oluşturma gibi bir derdimiz olmuyor.

costumListAdapter.java

package com.example.barankaraboa.listfavoriteapp;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

import java.util.ArrayList;

/**
 * Created by Baran on 5.04.2016.
 */
    public class customListAdapter extends BaseAdapter {


    private int position;
    ImageButton favButon ;

    Context context ;
    MainActivity favList= new MainActivity();
    LayoutInflater inflater;
    Activity activity;

    customListAdapter()
    {

    }
    customListAdapter(Context context,ArrayList isimler) {
        this.context = context;
        this.favList.liste = isimler;

    }

    @Override
    public int getCount() {
        return favList.liste.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        this.position = position;
        TextView isimler;
        ImageButton favButon;

        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View itemView = inflater.inflate(R.layout.list_fav,parent,false);

                isimler = (TextView)itemView.findViewById(R.id.isimText);

        return itemView;
    }


}