我正在尝试在我的搜索视图的搜索结果上设置一个 onclick 方法

I'm trying to set an onclick method on the searched result of my searchview

现在我只想在单击可扩展列表适配器时 它会去另一个活动。我如何确定点击了哪个?我是 android 的新手,希望有人能帮助我。

这是我的列表适配器代码所在的代码

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

private Context context;
private String container;
private ArrayList<ParentRow> parentRowList;
private ArrayList<ParentRow> originalList;

   public MyExpandableListAdapter(Context context
        , ArrayList<ParentRow> originalList) {
    this.context = context;
    this.parentRowList = new ArrayList<>();
    this.parentRowList.addAll(originalList);
    this.originalList = new ArrayList<>();
    this.originalList.addAll(originalList);
}

@Override
public int getGroupCount() {
    return parentRowList.size();
}

@Override
public int getChildrenCount(int groupPosition) {
    return parentRowList.get(groupPosition).getChildList().size();
}

@Override
public Object getGroup(int groupPosition) {
    return parentRowList.get(groupPosition);
}

@Override
public Object getChild(int groupPosition, int childPosition) {
    return parentRowList.get(groupPosition).getChildList().get(childPosition);
}

@Override
public long getGroupId(int groupPosition) {
    return groupPosition;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
    return childPosition;
}

@Override
public boolean hasStableIds() {
    return true;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
    ParentRow parentRow = (ParentRow) getGroup(groupPosition);

    if (convertView == null) {
        LayoutInflater layoutInflater = (LayoutInflater)
                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = layoutInflater.inflate(R.layout.parent_row, null);
    }

    TextView heading = (TextView) convertView.findViewById(R.id.parent_text);

    heading.setText(parentRow.getName().trim());
    return convertView;
}

@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    ChildRow childRow = (ChildRow) getChild(groupPosition, childPosition);
    if (convertView == null) {
        LayoutInflater layoutInflater = (LayoutInflater)
                context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = layoutInflater.inflate(R.layout.child_row, null);
    }

    ImageView childIcon = (ImageView) convertView.findViewById(R.id.child_icon);
    childIcon.setImageResource(childRow.getIcon());

    final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
    childText.setText(childRow.getText().trim());

    final View finalConvertView = convertView;
    childText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(finalConvertView.getContext()
                    , childText.getText()
                    , Toast.LENGTH_SHORT).show();

        }
    });

    return convertView;
}

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}

public void filterData(String query) {
    query = query.toLowerCase();
    parentRowList.clear();

    if (query.isEmpty()) {
        parentRowList.addAll(originalList);
    }
    else {
        for (ParentRow parentRow : originalList) {
            ArrayList<ChildRow> childList = parentRow.getChildList();
            ArrayList<ChildRow> newList = new ArrayList<ChildRow>();

            for (ChildRow childRow: childList) {
                if (childRow.getText().toLowerCase().contains(query)) {
                    newList.add(childRow);
                }
            } // end for (com.example.user.searchviewexpandablelistview.ChildRow childRow: childList)
            if (newList.size() > 0) {
                ParentRow nParentRow = new ParentRow(parentRow.getName(), newList);
                parentRowList.add(nParentRow);
            }
        } // end or (com.example.user.searchviewexpandablelistview.ParentRow parentRow : originalList)
    } // end else

    notifyDataSetChanged();
}

}

这是我的代码的一部分,我的 onclick 功能应该是,我想添加并意图添加到其他 activity 我怎样才能实现它?

 @Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    ChildRow childRow = (ChildRow) getChild(groupPosition, childPosition);
    if (convertView == null) {
        LayoutInflater layoutInflater = (LayoutInflater)
                context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = layoutInflater.inflate(R.layout.child_row, null);
    }

    ImageView childIcon = (ImageView) convertView.findViewById(R.id.child_icon);
    childIcon.setImageResource(childRow.getIcon());

    final TextView childText = (TextView) convertView.findViewById(R.id.child_text);
    childText.setText(childRow.getText().trim());

    final View finalConvertView = convertView;
    childText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(finalConvertView.getContext()
                    , childText.getText()
                    , Toast.LENGTH_SHORT).show();
        }
    });

    return convertView;
}

添加这两个监听器

expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
            @Override
            public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
                //here get you selected groupPosition
                Log.e("position",""+groupPosition);
                ParentRow parentRow = parentRowList.get(groupPosition);
                //if you want to send intent of any parent row click then put intent code here
                startActivity(new Intent......);
                return false;
            }
        });
        expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
            @Override
            public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
                //here get you selected groupPostion and childPosition 
                Log.e("position",""+groupPosition+":"+childPosition);
                 ChildRow childRow = parentRowList.get(groupPosition).getChildList().get(childPosition)
                //if you want to send intent of any child row click then put intent code here
                startActivity(new Intent......);
                return false;
            }
        });

在您的 class 中覆盖此函数:

@Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {     
         //check childPosition and call appropriate activity    
         return true; 
}