2016-04-07 6 views
0

Ich hatte eine ExpandableList, wo ich Adapter verwendet, um es zu füllen.
Jedes Kind hat ein Layout, Click funktioniert nicht beim ersten Klick.
Beim ersten Klick wird die gesamte Zeile ausgewählt. Beim zweiten Klick wird ein einzelnes Element in der untergeordneten Layoutzeile ausgeführt.
Gibt es eine Möglichkeit, in der die Einzelposten-Klickzeile für untergeordnete Artikel-Layouts beim ersten Klick funktioniert.
ExpandableListView Elemente in ChildItem Layout klicken

verwendete Code ist unten für Click:

@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 

} 

Antwort

0

Sie klicken Zuhörer in onChildClick Einstellung so, dass Ihre Klicks nicht auf ersten Mal arbeiten. Initialisiere und setze Klick-Listener deiner TextView in getChildView. es sollte funktionieren,

@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; 
    } 
+0

Vielen Dank. Ihre Lösung hat wie Charme funktioniert –

Verwandte Themen