Подтвердить что ты не робот

Используйте как onClickListener, так и onLongClickListener в списке Android 1.6.

Я использую onClickListener и onLongClickListener для TextView в ListView. Я вижу, что в Android 1.6 длинный клик прослушивается вместе с нажатием на кнопку прослушивания, что означает, что оба стреляли, когда я долго нажимаю. Но это не относится к будущим версиям. Есть ли какое-либо исправление для этого?

@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();
      }
  });
}
4b9b3361

Ответ 1

Вы вернули boolean true в конце OnLongClickListener, чтобы указать, что вы не хотите дальнейшей обработки?

Ответ 2

Я думаю, вы должны использовать OnItemLongClickListener() вместо OnLongClickListener().

См. сайт разработчиков для дальнейшего ответа

Ответ 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;
    }
});

Ответ 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; }});