Android 列表视图中有一半项未调用OnItemLongClickListener

Android 列表视图中有一半项未调用OnItemLongClickListener,android,android-listview,Android,Android Listview,我有一个带有自定义适配器的列表视图 public class ClueArrayAdapter extends ArrayAdapter<String> { --- ---- @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSys

我有一个带有自定义适配器的列表视图

public class ClueArrayAdapter extends ArrayAdapter<String> {

---
----

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
---
---
return rowView;
}

您可以在getView方法中设置单击侦听器。

       rowView.setOnClickListener(new View.onClickListener)
          {
            public void onclick()
             { //your code
             }
          });

您可以在getView方法中设置单击侦听器。

       rowView.setOnClickListener(new View.onClickListener)
          {
            public void onclick()
             { //your code
             }
          });
试试这个:

public class ClueArrayAdapter extends ArrayAdapter<String> {
---
----

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
  LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
  rowView.setOnItemLongClickListener(new OnItemLongClickListener() {
        public boolean onItemLongClick(AdapterView<?> parent, View view,
            int position, long id) {
         ---
  rowView.setSelected(true);
}

 ---
 ---
return rowView;
public类ClueArrayAdapter扩展了ArrayAdapter{
---
----
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
视图行视图=充气机。充气(R.layout.rowlayout,父级,false);
rowView.setOnItemLongClickListener(新的OnItemLongClickListener(){
长单击(AdapterView父视图、视图、,
内部位置,长id){
---
rowView.setSelected(true);
}
---
---
返回行视图;
}试试这个:

public class ClueArrayAdapter extends ArrayAdapter<String> {
---
----

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
  LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
  rowView.setOnItemLongClickListener(new OnItemLongClickListener() {
        public boolean onItemLongClick(AdapterView<?> parent, View view,
            int position, long id) {
         ---
  rowView.setSelected(true);
}

 ---
 ---
return rowView;
public类ClueArrayAdapter扩展了ArrayAdapter{
---
----
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)上下文
.getSystemService(上下文布局\充气机\服务);
视图行视图=充气机。充气(R.layout.rowlayout,父级,false);
rowView.setOnItemLongClickListener(新的OnItemLongClickListener(){
长单击(AdapterView父视图、视图、,
内部位置,长id){
---
rowView.setSelected(true);
}
---
---
返回行视图;

}

从onTouchEvent返回false。
返回true意味着您已处理该事件,并且不应将其传递给下一个处理程序(在本例中为长触摸事件)。

从onTouchEvent返回false。
返回true意味着您已处理该事件,并且不应将其传递给下一个处理程序(在本例中为长触摸事件).

发布MyView的onTouchEvent的代码。我猜您正在那里消费long press事件。dymmeh,请查看onTouchEvent。发布MyView的onTouchEvent的代码。我猜您正在那里消费long press事件。dymmeh,请查看onTouchEvent。谢谢,我尝试了这个,但遇到了错误无法在此类视图上设置temLongClickListener。因此,我使用setOnItemLongClickListener进行了尝试。行为相同。RowView中有两个视图,一个是TextView,另一个是自定义视图。当长单击位于TextView占用的区域时,将调用侦听器。自定义视图“MyView”具有OnTouchEvent(Motion偶数),当触摸此视图时,将调用其onTouchEvent方法。任何触摸事件都将传递给“MyView”,而不会传递给“RowView”和ListView上的侦听器。谢谢,我尝试了此操作,但得到的错误是无法在此类视图上设置setOnItemLongClickListener。因此,我尝试了setOnItemLongClickListener。行为相同.RowView中有两个视图,一个是TextView,另一个是自定义视图。当长时间单击TextView占用的区域时,将调用侦听器。自定义视图“MyView”具有OnTouchEvent(Motion偶数),当触摸此视图时,将调用其onTouchEvent方法。任何触摸事件都将传递给“MyView”,而不会传递给“RowView”和ListView上的侦听器
public class ClueArrayAdapter extends ArrayAdapter<String> {
---
----

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
  LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  View rowView = inflater.inflate(R.layout.rowlayout, parent, false);
  rowView.setOnItemLongClickListener(new OnItemLongClickListener() {
        public boolean onItemLongClick(AdapterView<?> parent, View view,
            int position, long id) {
         ---
  rowView.setSelected(true);
}

 ---
 ---
return rowView;