web-dev-qa-db-ja.com

リストビューでonClickListenerとonLongClickListenerの両方を使用Android 1.6

ListViewTextViewonClickListeneronLongClickListenerの両方を使用しています。 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();
      }
  });
}
33
dcanh121

OnLongClickListener()の代わりにOnItemLongClickListener()を使用する必要があると思います。

詳細な応答については developers website をご覧ください

13
varun bhardwaj
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;
    }
});
9
selva_pollachi
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; }});
1
Nouman Shah