2014-06-16 2 views
-2

Я разрабатываю приложение android и у меня серьезные проблемы с listview.Capture Touch Events on ListView

Сначала у меня был onItemClickListener, и он работал хорошо, но теперь я включил некоторые новые функции в макет, и он не работает.

мой код:

lv = (ListView) findViewById(R.id.listChap); 
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
     Toast.makeText(CapituloList.this,"Pulsado",Toast.LENGTH_SHORT).show(); 
     Capitulo chap = (Capitulo) mAdapter.getItem(i); 
     Intent mIntent = new Intent(CapituloList.this, MangaView.class); 
     mIntent.putExtra("capitulo", chap); 
     startActivity(mIntent); 
    } 
}); 

И в Capitulo адаптер у меня есть:

@Override 
public View getView(int i, View view, ViewGroup viewGroup) { 
    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    view = inflater.inflate(R.layout.list_manga_item_view,null); 
    TextView tv = (TextView) view.findViewById(R.id.nombre_manga); 
    ImageButton ib = (ImageButton) view.findViewById(R.id.checked_icon); 
    ImageButton ib2 = (ImageButton) view.findViewById(R.id.unchecked_icon); 
    tv.setText(mItems.get(i).getCapitulo()); 
    return view; 
} 

Obviusly я хочу diferientiate между штрихами на И.Б., Ib2 и остальной части макета Видимый результат это: щелкните по URL-адресу, у меня нет репутации, чтобы публиковать изображения http://i.imgur.com/kNXU8lE.png

Заранее благодарен

EDIT: решаемые

@Override 
public View getView(int i, View view, ViewGroup viewGroup) { 
    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    view = inflater.inflate(R.layout.list_manga_item_view,null); 
    TextView tv = (TextView) view.findViewById(R.id.nombre_manga); 
    final Capitulo chap = (Capitulo) this.getItem(i); 
    ImageButton ib = (ImageButton) view.findViewById(R.id.imageButton); 
    ib.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Toast.makeText(mContext,"Button1 pressed",Toast.LENGTH_LONG).show(); 
     } 
    }); 
    view.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent mIntent = new Intent(mContext, MangaView.class); 
      mIntent.putExtra("capitulo", chap); 
      mContext.startActivity(mIntent); 
     } 
    }); 
    ImageButton ib2 = (ImageButton) view.findViewById(R.id.imageButton2); 
    ib2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Toast.makeText(mContext,"Button2 pressed",Toast.LENGTH_LONG).show(); 
     } 
    }); 
    tv.setText(mItems.get(i).getCapitulo()); 
    return view; 
} 
+0

Вы установите onItemClickListener на эти кнопки? – dasjkdj

+0

Нет, когда это был просто TextView, он действительно сработал, но теперь он не распознает события касаний –

+0

aima ponerle un click listenener los imagebutton. Dices que ahora no reacciona al pulsar ningun objeto de la lista? – dasjkdj

ответ

0
@Override 
public View getView(int i, View view, ViewGroup viewGroup) { 
LayoutInflater inflater = (LayoutInflater) 
mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.list_manga_item_view,null); 
TextView tv = (TextView) view.findViewById(R.id.nombre_manga); 
final Capitulo chap = (Capitulo) this.getItem(i); 
ImageButton ib = (ImageButton) view.findViewById(R.id.imageButton); 
ib.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Toast.makeText(mContext,"Button1 pressed",Toast.LENGTH_LONG).show(); 
    } 
}); 
view.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent mIntent = new Intent(mContext, MangaView.class); 
     mIntent.putExtra("capitulo", chap); 
     mContext.startActivity(mIntent); 
    } 
}); 
ImageButton ib2 = (ImageButton) view.findViewById(R.id.imageButton2); 
ib2.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Toast.makeText(mContext,"Button2 pressed",Toast.LENGTH_LONG).show(); 
    } 
}); 
tv.setText(mItems.get(i).getCapitulo()); 
return view; 
}