使用setOnItemClickListener,TextView类型是否未定义?

时间:2011-10-06 21:20:49

标签: java android

我有一个带Checkboxes的ListView,(TextView + Checkboxes),我为项目本身做了setOnLongClickListener:

view = inflator.inflate(R.layout.rowbuttonlayout, null);
final ViewHolder viewHolder = new ViewHolder();     
    viewHolder.text = (TextView) view.findViewById(R.id.label);

                viewHolder.text.setOnLongClickListener(new OnLongClickListener() {

                    public boolean onLongClick(View arg0) {

Viewholder来自我的自定义适配器到我的Listview,我猜不需要指定细节。这工作得很好,问题是:如果我尝试与setOnItemClickLister相同(我只是想做一个“小”点击)我得到错误:

  

方法setOnItemClickListener(new OnItemClickListener(){})是   未定义TextView

类型

试着这样:

viewHolder.text.setOnItemClickListener(new OnItemClickListener() {

viewHolder.text.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){

但我总是得到那个错误。我该怎么办?

2 个答案:

答案 0 :(得分:3)

我认为您需要一个简单的OnClickListener而不是OnItemClickListener

viewHolder.text.setOnClickListener(new OnClickListener() {

答案 1 :(得分:0)

您正在将“text”参数转换为“TextView”。根据定义,该类没有任何项目。 所以永远不会有“OnItemClick”事件。 您希望在ListView上定义此行为,而不是在项目内的文本上定义。

示例:

  ListView lv = getListView();
  lv.setOnItemClickListener(new OnItemClickListener() { 
     ...
     }
  );

在你的情况下,你想对你所描述的“...我的Listview ......”采取行动。 另一方面,如果您真的想要对项目中的TextView进行操作,那么您应该为TextView实现“setOnClickListener”方法。

示例:

  viewHolder.text.setOnClickListener(new OnClickListener(){
     ...
     }
  );