Use both onClickListener and onLongClickListener in listview Android 1.6

69,336

Solution 1

Did you return boolean true at the end of OnLongClickListener to indicate you don't want further processing?

Solution 2

I think you you should use OnItemLongClickListener() instead of OnLongClickListener().

See developers website for further response

Solution 3

TextView t1 = (TextView) findViewById(R.id.textView1);
t1.isClickable();

t1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Clicked", Toast.LENGTH_SHORT).show();
    }
});

t1.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Long Clicked", Toast.LENGTH_SHORT).show();
        return true;
    }
});

Solution 4

itemToClick.setOnClickListener(new View.OnClickListener() {
   @Override
    public void onClick(View v)      { 
      //do your logic on click 
     });
itemToClick.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
      // do your logic for long click and remember to return it 
        return true; }});
Share:
69,336
dcanh121
Author by

dcanh121

Updated on December 25, 2020

Comments

  • dcanh121
    dcanh121 over 3 years

    I am using both onClickListener and onLongClickListener for a TextView in a ListView. I see that in Android 1.6, the long click listener is fired along with the on click listener meaning both are fired when I long click. But this is not the case in the future versions. Is there any fix for this?

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
      if (convertView == null) {
        LayoutInflater inflater = getLayoutInflater();
        row = inflater.inflate(R.layout.row, parent, false);
      }
    
      TextView tv = (TextView) row.findViewById(R.id.tv);
    
      tv.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            showMessage();
          }
      });
    
      tv.setOnLongClickListener(new View.OnLongClickListener() {
          @Override
          public boolean onLongClick(View v) {
            showLongMessage();
          }
      });
    }