ChildItem 布局中的 ExpandableListView 项目单击

ExpandableListView items in ChildItem Layout click

我有一个 ExpandableList,我使用 Adapter 来填充它。
每个 child 都有一个布局,点击在第一次点击时不起作用。
第一次单击整行被选中,第二次单击 child 布局行上的单个项目正在工作。
有没有一种方法可以让 child 项目布局行中的单个项目点击在第一次点击时起作用。

点击代码如下:

@Override
public boolean onChildClick(ExpandableListView parent, View v, final int groupPosition, final int childPosition, long id) {
    TextView tv= (TextView) v.findViewById(R.id.r2c1);
    /*tv.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            launchChildScreen();
            return true;
        }
    });*/
   tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("TAG", "Clicked on button in Expandable List");
              Toast.makeText(getActivity(),"Clicked on Account TextView"+childPosition+"::"+groupPosition,Toast.LENGTH_LONG).show();


        }
    });





    return true;  // i

}

您正在 onChildClick 中设置点击侦听器,因此您的点击在第一次时不起作用。在 getChildView 中初始化并设置 TextView 的点击监听器。它应该可以工作,

  @Override
    public View getChildView(int groupPosition, int childPosition,
                             final boolean isLastChild, View convertView, final ViewGroup parent) {
final ViewHolder holder;
        if (convertView == null) {
            LayoutInflater inflater =  (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_row, null);
            holder = new ViewHolder();
            holder.txtName = (TextView) convertView.findViewById(R.id.txtName);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

holder.txtName.setText("your name");

// here set onclicklistner 

holder.txtName.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // write your code here
                }
            });


        return convertView;
    }