2013-05-13 3 views
0

ActionBar Sherlock을 사용하고 있습니다.사용자 정의 ListView의 setOnItemClickListener가 작동하지 않습니다. ActionBarSherlock

이 코드는 2.X에서 미세하지만 4.x의 작동

클릭이 유일한 4.x의 버전에서 작동 내가 여러 가지 방법을 시도하고 내가 할 수없는 버전 2.x에서 작동

클릭 기능

무엇이 문제입니까?

import java.util.ArrayList; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.actionbarsherlock.app.SherlockListActivity; 

public class Inicio extends SherlockListActivity { 
    private ListView mListView; 
    private ArrayList<Capitulos> listado; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     mListView = getListView(); 

     listado = new ArrayList<Capitulos>(); 

     for(int i = 0; i < 20; i++){ 
      listado.add(new Capitulos("Titulo " + i, "descripcion " + i)); 
     } 

     AdaptadorTitulares adaptador = new AdaptadorTitulares(Inicio.this); 
     setListAdapter(adaptador); 
     mListView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
       Toast.makeText(Inicio.this, "hazlo", 0).show(); 
      } 
     }); 
    } 

    class AdaptadorTitulares extends ArrayAdapter { 
     Activity context; 

     @SuppressWarnings("unchecked") 
     AdaptadorTitulares(Activity context) { 
      super(context, R.layout.lista, listado); 
      this.context = context; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      LayoutInflater inflater = context.getLayoutInflater(); 
      View item = inflater.inflate(R.layout.lista, null); 

      TextView titulo = (TextView)item.findViewById(R.id.titulo_art); 
      titulo.setText(((Capitulos)getItem(position)).getTitulo()); 
      TextView subtitulo = (TextView)item.findViewById(R.id.desc_art); 
      subtitulo.setText(((Capitulos)getItem(position)).getDescrip()); 

      return(item); 
     } 

    } 
} 

답변

0

봅니다 onClickListener()arrayyAdapter 클래스의 내부를 정의합니다 :

item.setOnClickListener(..... 
+0

이미 시도하고 그것이 작동하지 않았다 :( – user2379552

+0

아마 질문과 아무 상관이 있지만, 왜'새를 정의 view' ('item')를'getView'에서'convertView'를 부 풀리지 않습니까? –

관련 문제