Java 自定义ListView中的setOnItemClickListener不工作ActionBarSherlock
我用的是ActionBar Sherlock,效果很好 这段代码在2.x中可以正常工作,但在4.x中不行 单击只在2.x版本中有效,而在4.x版本中不起作用我已经尝试了很多方法,但我无法实现单击功能 有什么问题Java 自定义ListView中的setOnItemClickListener不工作ActionBarSherlock,java,android,listview,Java,Android,Listview,我用的是ActionBar Sherlock,效果很好 这段代码在2.x中可以正常工作,但在4.x中不行 单击只在2.x版本中有效,而在4.x版本中不起作用我已经尝试了很多方法,但我无法实现单击功能 有什么问题 import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View;
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);
}
}
}
import java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.actionbarsherlock.app.SherlockListActivity;
公共类Inicio扩展Sherlocklist活动{
私有列表视图;
私人ArrayList listado;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mListView=getListView();
listado=newarraylist();
对于(int i=0;i<20;i++){
添加(新的大写字母(“Titulo”+i,“description”+i));
}
AdapterTortuales Adapter=新的AdapterTortuales(Inicio.this);
setListAdapter(Adapter);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
Toast.makeText(ini.this,“hazlo”,0.show();
}
});
}
类适配器扩展了ArrayAdapter{
活动语境;
@抑制警告(“未选中”)
改编(活动上下文){
super(context,R.layout.lista,listado);
this.context=上下文;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图项=充气机。充气(R.layout.lista,空);
TextView titulo=(TextView)item.findViewById(R.id.titulo_艺术);
titulo.setText(((capitalulos)getItem(position)).getitulo();
TextView subtitulo=(TextView)item.findViewById(R.id.desc_art);
subtitulo.setText(((大写)getItem(position)).getDescrip());
退货(项目);
}
}
}
尝试在ArrayAdapter
类中将其定义为onClickListener()
:
可能与您的问题无关,但您为什么要在
getView
中定义新的view
(item
),而不是膨胀convertView
?
item.setOnClickListener(.....