【问题标题】:ExpandableListView items in ChildItem Layout clickChildItem 布局中的 ExpandableListView 项目单击
【发布时间】:2016-04-07 13:45:22
【问题描述】:

我有一个 ExpandableList,我使用 Adapter 来填充它。
每个孩子都有一个布局,点击在第一次点击时不起作用。
在第一次单击时选择了整行,第二次单击子布局行上的单个项目正在工作。
是否有一种方法可以使子项目布局行单个项目单击在第一次单击时起作用。

点击代码如下:

@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

}

【问题讨论】:

    标签: android expandablelistview expandablelistadapter


    【解决方案1】:

    您正在 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;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多