Android如何从自定义视图onclicklisner调用onitemclicklisner?

Android如何从自定义视图onclicklisner调用onitemclicklisner?,android,listview,custom-adapter,Android,Listview,Custom Adapter,我为listview及其word fine定制了一个适配器。但是,当我将onclicklistener设置为自定义适配器行视图中的视图时,OnItemClickListener无法工作 public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; try{ if(convertView==null) { c

我为listview及其word fine定制了一个适配器。但是,当我将onclicklistener设置为自定义适配器行视图中的视图时,OnItemClickListener无法工作

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    try{
        if(convertView==null)
        {
            convertView=mInflater.inflate(R.layout.marker_row_view, null);
            holder=new ViewHolder();
            holder.Name=(TextView)convertView.findViewById(R.id.ProeprtyName);
            holder.image=(ImageView)convertView.findViewById(R.id.RightArrow);
            convertView.setTag(holder);
        }
        else
        {
            holder=(ViewHolder)convertView.getTag();
        }

      holder.Name.setText(propertyNames[position]);
      if(selectedPosition == position){
          Log.d("", "selected");
          convertView.setBackgroundColor(Color.BLUE);
          convertView.setBackgroundColor(Color.parseColor("#3B79FF"));
          holder.Name.setTextColor(Color.WHITE);
      }else{
          //convertView.setBackgroundResource(R.drawable.savsearch_bg_district);
          holder.Name.setTextColor(Color.BLACK);
      }
      holder.Name.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.d("fdsf", "on");
                Globalclass global = (Globalclass) ((Activity)context).getApplication();
                global.setMarkerTextClick(true);
            }
      });
      holder.image.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Log.d("fdsf", "on");
                Globalclass global = (Globalclass) ((Activity)context).getApplication();
                global.setMarkerTextClick(false);
            }
      });

    }catch (Exception e) {
        e.printStackTrace();
    }

    return convertView;
}
listview的代码是

final MarkerInfoAdapter adapter = new MarkerInfoAdapter(PropertyMapList.this, names);
                                final ListView list = (ListView) CustomMarker.findViewById(R.id.listView1);
                                list.setAdapter(adapter);list.setOnItemClickListener(new OnItemClickListener() {

                                    @Override
                                    public void onItemClick(
                                            AdapterView<?> arg0, View arg1,
                                            int arg2, long arg3) {
                                        Log.d("", "fsdfdsfds");
                                        ((MarkerInfoAdapter)adapter).setSelected(arg2);
                                    }
                                });
final MarkerInfoAdapter=新的MarkerInfoAdapter(PropertyMapList.this,name);
最终ListView列表=(ListView)CustomMarker.findViewById(R.id.listView1);
list.setAdapter(适配器);list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共空间(
AdapterView arg0,视图arg1,
整数arg2,长arg3){
Log.d(“,”fsdfdsfds“);
((MarkerInfoAdapter)适配器).setSelected(arg2);
}
});

由于您要在onClick listener中添加相同的代码,因此在行视图中使用单击式listener没有任何意义。相反,您可以在onItemClick中添加以下代码

 Globalclass global = (Globalclass) ((Activity)context).getApplication();
   global.setMarkerTextClick(false);
如果仍要在单击特定视图时实现,请确保

  • 视图不可单击

  • android:focusable=“false”

  • android:focusableInTouchMode=“false”
在listview标记中添加以下属性

 android:clickable="true"
 android:descendantFocusability="beforeDescendants"
此链接将解决您的问题

您可以尝试以下方法:

convertView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
               setSelected(position); 
            }
      });

尝试CustomMarker.list.setOnItemClickListener……哪些是您试图实现的视图
onClicklistener()
??我想知道单击了哪个视图(文本或图像),如果文本意味着我将调用某个函数,而图像意味着调用另一个函数。。我可以得到视图点击,所以我为每个视图实现了这个onclicklisner现在正在工作,但是不能得到listview的onitemclickLisner??Onclick of textview我希望itemclicklistener运行,Onclick of the rightArrow(图像)我需要为marker类做一些逻辑工作。。。