Soru & Cevap

ListView scroll edilince seçilen item ın yeri değişiyor

02.04.2015 - 01:14

Merhaba,

ListView kullanarak verileri listeliyorum. Listeden herhangi bir item seçildiğinde background rengini değiştiriyorum. Buraya kadar problem yok. Fakat ListView i aşağı-yukarı kaydırdığımda seçilen item in position ı değişiyor. Bir bakıyorum 1. position seçili bir bakıyorum 5. position seçili. Problemi çözmek için birçok yol denedim. Fakat hiçbiri problemi çözmeme yardımcı olamadı. ListView in setOnItemClickListener metodunu kullanarak view.setBackgroundColor(renk) ile arkaplan rengini değiştirmeyi, ViewHolder yapısı kullanarak custom olarak oluşturduğum listview in itemına tıklandığında o item'in bulunduğu layout'un arkaplan rengini değiştirdim, tıklanan position değerlerinin tutulacağı bir array tanımlayıp setOnItemClickListener içerisinde position değerini buraya atıp CustomListView içerisinde if, else kontrolleri ile arka plan rengini değiştirmeye çalıştım. Bu denemelerim sonucunda problemi çözemedim. Lütfen biri bana yardımcı olabilir mi?

Teşekkürler.

4 Görüntülenme

3 Cevap

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

Profile picture for user mustafapolat
mustafapolat
09.04.2015 - 05:31

ben yukarıdaki gibi yaptım. tıklayınca renk alıyor ama işim bittiğinde renk gitmiyor. belki fikir veririr diye kodları paylaştım.

Profile picture for user mustafapolat
mustafapolat
09.04.2015 - 05:29

package com.yemre.xxxx;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;

public class ListView extends ListActivity{
String stringarray[]={"liste adı","liste adı","liste adı","liste adı"};

    @Override
    protected void onListItemClick(android.widget.ListView l, View v,
            int position, long id) {
        if(position==0)
        {
            startActivity(new Intent("android.intent.action.liste adı"));
        }
    
        else if(position==1)
        {
            startActivity(new Intent("android.intent.action.liste adı"));
            
        }
        
                    
        else if (position==2) 
        {
            startActivity(new Intent("android.intent.action.liste adı"));
        }
        
        else if (position==3)
        {
            startActivity(new Intent("android.intent.action.liste adı"));
            
        }
        
        super.onListItemClick(l, v, position, id);
        v.setBackgroundColor(R.drawable.tklandığında olacak renk);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringarray));
        
    
        
    }

    
    
}

picture-31404-1421919825.png
muhcob
02.04.2015 - 04:34

//ListView'in herhangi bir item'i tıklandığında çalışacak metod
[code]

OnItemClickListener listViewOnItemClick = new OnItemClickListener() {

@Override public void onItemClick(AdapterView<?> adapter, View arg1, int position, long id) {

mSelectedItem = position;

mAdapter.notifyDataSetChanged();

}

};

[/code]

//Adapter sınıfı

[code]

@Override public View getView(int position, View convertView, ViewGroup parent) {

final View view = View.inflate(context, R.layout.item_list, null);

if (position == mSelectedItem) {

// gerekli aksiyonları buraya yazabilirsin.

}

return view;

}

[/code]

Omer Yılmaz
02.04.2015 - 04:37
Teşekkürler