personalizar - ratingbar android color
ExpandableListView OnChildClickListener no funciona (3)
Tengo mi problema con mi ListView Expandible en mi aplicación de Android
este mi código
package proyek.akhir;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.Toast;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.TextView;
public class list_tempat extends Activity {
private List<String> groupData;
private List<List<String>> childrenData;
static String asalfromList ;
protected static final Object[] String = null;
static String l1 ;
private void loadData() {
groupData = new ArrayList<String>();
groupData.add("Group 1");
groupData.add("Group 2");
groupData.add("Group 3");
childrenData = new ArrayList<List<String>>();
List<String> sub1 = new ArrayList<String>();
sub1.add("G1 Item 1");
sub1.add("G1 Item 2");
childrenData.add(sub1);
List<String> sub2 = new ArrayList<String>();
sub2.add("G2 Item 1");
sub2.add("G2 Item 2");
sub2.add("G2 Item 3");
sub2.add("G2 Item 4");
childrenData.add(sub2);
List<String> sub3 = new ArrayList<String>();
sub3.add("G3 Item 1");
sub3.add("G3 Item 2");
sub3.add("G3 Item 3");
sub3.add("G3 Item 4");
sub3.add("G3 Item 5");
childrenData.add(sub3);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.expandable_list_view);
l1 = "l1";
loadData();
ExpandableListView expandableListView = (ExpandableListView)findViewById(R.id.expandable_list_view);
expandableListView.setAdapter(new ExpandableAdapter());
expandableListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View clickedView, int groupPosition, long groupId) {
return false;
}
});
expandableListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandablelistview,
View clickedView, int groupPosition, int childPosition, long childId) {
Intent i = getIntent();
//asalfromList =(String) ((TextView) view).getText();
Intent intent = new Intent(list_tempat.this, ruteangkot.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("l1", String);
intent.putExtra("textAsal",asalfromList );
if (i.getStringExtra("tujuan") != null){
intent.putExtra("textTujuan",list_tempat2.tujuanfromList );
System.out.println("adaan");
}else{
System.out.println("eweh");
intent.putExtra("textTujuan","");
}
menuutama.mu = "";
list_tempat2.l2 = "";
startActivity(intent);
finish();
System.out.println("wkwkwk");
showMessage("hahasu" + ((TextView)clickedView).getText());
return false;
}
});
expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
}
});
expandableListView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
}
});
}
private class ExpandableAdapter extends BaseExpandableListAdapter {
@Override
public Object getChild(int groupPosition, int childPosition) {
return childrenData.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
TextView text = null;
if (convertView != null) {
text = (TextView)convertView;
text.setText(childrenData.get(groupPosition).get(childPosition));
} else {
text = createView(childrenData.get(groupPosition).get(childPosition));
}
return text;
}
@Override
public int getChildrenCount(int groupPosition) {
return childrenData.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return groupData.get(groupPosition);
}
@Override
public int getGroupCount() {
return groupData.size();
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
TextView text = null;
if (convertView != null) {
text = (TextView)convertView;
text.setText(groupData.get(groupPosition));
} else {
text = createView(groupData.get(groupPosition));
}
return text;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
private TextView createView(String content) {
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, 38);
TextView text = new TextView(list_tempat.this);
text.setLayoutParams(layoutParams);
text.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
text.setPadding(40, 0, 0, 0);
text.setText(content);
return text;
}
}
private void showMessage(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
¿El expandableListView.setOnChildClickListener no funciona? Quiero capturar los datos de esa lista de niños, ¿alguien puede ayudarme? Gracias
¡Debes activar que tus hijos sean seleccionables! Para hacer eso, devuelva verdadero en su (anulación) el método de selección de clase de isChildSelectable ExpandableListAdapter .
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
Si está utilizando OnChildClickListener
y / o OnGroupClickListener
entonces cada vista secundaria dentro de las filas del grupo y las filas infantiles no debe ser enfocable. Por ejemplo, si tiene una casilla de verificación en el hijo, configure la casilla de verificación para que no se pueda enfocar:
checkBox.setFocusable(false);
Además, si configura el convertView de grupo / hijo para hacer clic en él, evitará que los clics lleguen a OnChildClickListener
y OnGroupClickListener
. Si este es el caso, vaya a getGroupView
, en su expListViewAdapter
, y establezca:
convertView.setClickable(false);
Luego vaya a getChildView
, en su expListViewAdapter
, y establezca:
convertView.setClickable(false);
Después de esto, tanto OnGroupClickListener
como OnChildClickListener
deberían funcionar; se le concedió establecer los escuchas en primer lugar (utilizando expandableListView.setOnGroupClickListener(...)
y expandableListView.setOnChildClickListener(...)
)
Tienes que cambiar el valor de retorno es verdadero en lugar de falso. Haga que la vista de su hijo sea seleccionable.
Utilizar esta:
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
En lugar de:
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}