Sto creando una vista elenco espandibile in Android. Ho aggiunto tre textview nel relativo layout e due pulsanti nel layout lineare orizzontale significa che questi due pulsanti sono aggiunti in una riga, quindi come posso fare clic su evento su quei due pulsanti?Come gestire l'evento click secondario in Expandablelistview in Android?
E voglio chiamare un'altra attività sul pulsante clic in visualizzazione elenco espandibile. Ma non ho trovato alcuna idea su come fare clic su child in ExpandableListView
.
Ecco il mio file XML.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:padding="2dp" >
<TextView
android:id="@+id/TextView_Projectdetails"
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="@drawable/button_shape"
android:paddingLeft="10sp"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/textOne"
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_below="@+id/TextView_Projectdetails"
android:layout_marginTop="2dp"
android:background="@drawable/button_shape"
android:paddingLeft="10sp"
android:textColor="@android:color/black" >
</TextView>
<TextView
android:id="@+id/textTwo"
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_below="@+id/textOne"
android:layout_marginTop="2dp"
android:background="@drawable/button_shape"
android:paddingLeft="10sp"
android:textColor="@android:color/black" >
</TextView>
<LinearLayout
android:id="@+id/linearlAYOUT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textTwo"
android:layout_marginTop="5dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button_EditedTask"
android:layout_width="0dp"
android:layout_height="27dp"
android:layout_gravity="center"
android:layout_weight="1"
android:background="@drawable/button_shape_two"
android:gravity="center"
android:paddingBottom="3sp"
android:paddingTop="3sp"
android:text="ASSIGN TASK"
android:focusable="false"
android:textColor="@android:color/white"
android:textSize="12sp"
android:textStyle="normal" />
<Button
android:id="@+id/buttonViewTask"
android:layout_width="0dp"
android:layout_height="27dp"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_marginLeft="3dp"
android:layout_weight="1"
android:background="@drawable/button_shape_one"
android:gravity="center"
android:paddingBottom="3sp"
android:paddingTop="3sp"
android:text="VIEW TASK"
android:focusable="false"
android:textColor="@android:color/white"
android:textSize="12sp"
android:textStyle="normal" />
</LinearLayout>
</RelativeLayout>
List_Group file XML -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp"
android:background="#000000">
<TextView
android:id="@+id/lblListHeader"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
android:textSize="17dp"
android:textColor="#f9f93d" />
</LinearLayout>
ecco la mia ExpandableListAdapter
classe -
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<String>> _listDataChild;
Context context;
public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<String>> listChildData) {
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}
public ExpandableListAdapter
(My_Project my_Project, List createGroupList,
int listGroup, String[] strings, int[] is, List createChildList,
int childItem, String[] strings2, int[] is2)
{
// TODO Auto-generated constructor stub
}
@Override
public Object getChild(int groupPosition, int childPosition)
{
//this.get(groupPosition).getChildren().get(childPosition);
String strchildPosition = this._listDataChild.get(this._listDataHeader.get(groupPosition)).get(childPosition);
System.out.println("Child Position =" + strchildPosition);
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.child_item, null);
}
TextView txtListChild = (TextView) convertView.findViewById(R.id.TextView_Projectdetails);
TextView txtOneListChild = (TextView)convertView.findViewById(R.id.textOne);
TextView txtTwoListChild = (TextView)convertView.findViewById(R.id.textTwo);
txtListChild.setText(childText);
txtOneListChild.setText(childText);
txtTwoListChild.setText(childText);
Button btnAssgnTask = (Button)convertView.findViewById(R.id.button_EditedTask);
btnAssgnTask.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Intent i=new Intent(context,Assign_Task.class);
//StartElementListener()
}
});
Button btnViewTask = (Button)convertView.findViewById(R.id.buttonViewTask);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return this._listDataHeader.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_group, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
Ecco il mio codice di attività -
public class My_Project extends ExpandableListActivity
{
expListView = (ExpandableListView) findViewById(android.R.id.list);
expListView.setOnGroupClickListener(new OnGroupClickListener()
{
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id)
{
return false;
}
});
expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Toast.makeText(getApplicationContext(),
dtrProjectNAmeSize.length + " Expanded",
Toast.LENGTH_SHORT).show();
}
});
expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Toast.makeText(getApplicationContext(),
dtrProjectNAmeSize.length + " Collapsed",
Toast.LENGTH_SHORT).show();
}
});
expListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// TODO Auto-generated method stub
int cp = (int) mAdapter.getChildId(groupPosition, childPosition);
if(cp == 3)
{
switch (cp)
{
case 3:
break;
}
}
return false;
}
});
mAdapter = new SimpleExpandableListAdapter(
this,
groupData,
R.layout.list_group,
new String[] { Project_Name },
new int[] {R.id.lblListHeader },
childData,
R.layout.child_item,
new String[] { Project_Date_Created , Project_End_Date , Project_Is_Active},
new int[] { R.id.TextView_Projectdetails , R.id.textOne , R.id.textTwo }
);
expListView.setAdapter(mAdapter);
}
}
Che cos'è GoCategory. – tazeenmulani
Questa è una funzione, in cui si desidera svolgere altre attività .... –
@Ad Abdul Gafur, Ma devo aggiungere due pulsanti in una riga sulla visualizzazione elenco figlio affiancata, quindi come attivare l'evento click su quei pulsanti. – tazeenmulani