marcin
marcin

Reputation: 399

setOnLongClickListener on a ListView doesn't fire

what is wrong with this code?
i try to add a long click listener to an listview, but can't get it right for some reason:

package ch.futurecom.adaptertest;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class AdapterTestActivity extends ListActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        ListView lv = getListView();

        lv.setLongClickable(true);
        lv.setOnLongClickListener(new OnLongClickListener()
        {
            @Override
            public boolean onLongClick(View v)
            {
                Toast.makeText(AdapterTestActivity.this, "long clicked", Toast.LENGTH_SHORT).show();
                return true;    
            }
        });

        lv.setAdapter(new ArrayAdapter<String>(this,R.layout.row,getResources().getStringArray(R.array.items)));
    }
}

pastebin links:
AdapterTestActivity.java -> http://pastebin.com/Pw30EkEz
row.xml -> http://pastebin.com/6FajncHT

thanks!

Upvotes: 0

Views: 7384

Answers (2)

Zaz Gmy
Zaz Gmy

Reputation: 4356

use setOnItemLongClickListener insted of setOnLongClickListener

lv.setOnItemLongClickListener (new OnItemLongClickListener() {
  public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
    //do your stuff here
  }
});

Upvotes: 3

Dheeresh Singh
Dheeresh Singh

Reputation: 15701

try AdapterView.OnItemLongClickListener as

ListView lv = getListView();
            lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){ 
                   @Override 
                   public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) 
                  { 
                       Toast.makeText(AdapterTestActivity .this, "LongClicked", Toast.LENGTH_LONG).show();
                  } 
             }); 

Upvotes: 12

Related Questions