Detect user action on ExpandableListView, with various Listeners

Detect user action on ExpandableListView, with various Listeners

Detect user action on ExpandableListView, with various Listeners - Hallo sahabat Teknologi Terbaru, Pada Artikel yang anda baca kali ini dengan judul Detect user action on ExpandableListView, with various Listeners, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Detect user action on ExpandableListView, with various Listeners
link : Detect user action on ExpandableListView, with various Listeners

Baca juga


Detect user action on ExpandableListView, with various Listeners

This example implement various Listeners (OnChildClickListener, OnGroupClickListener, OnGroupCollapseListener and OnGroupExpandListener) to monitor user click on ExpandableListView.

ExpandableListView with Listeners
ExpandableListView with Listeners
MainActivity.java
package com.example.androidexpandablelistview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.TextView;

public class MainActivity extends Activity {

MyBaseExpandableListAdapter myBaseExpandableListAdapter;
ExpandableListView myExpandableListView;
List<String> myListForGroup;
HashMap<String, List<String>> myMapForChild;

TextView info;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

info = (TextView)findViewById(R.id.info);

myExpandableListView = (ExpandableListView)
findViewById(R.id.myexpandablelistview);

initData();

myBaseExpandableListAdapter = new
MyBaseExpandableListAdapter(this, myListForGroup, myMapForChild);

myExpandableListView.setAdapter(myBaseExpandableListAdapter);

myExpandableListView.setOnChildClickListener(myOnChildClickListener);
myExpandableListView.setOnGroupClickListener(myOnGroupClickListener);
myExpandableListView.setOnGroupCollapseListener(myOnGroupCollapseListener);
myExpandableListView.setOnGroupExpandListener(myOnGroupExpandListener);
}

private void initData() {
myListForGroup = new ArrayList<String>();
myMapForChild = new HashMap<String, List<String>>();

List<String> listGroupA = new ArrayList<String>();
listGroupA.add("A - 1");
listGroupA.add("A - 2");
listGroupA.add("A - 3");

List<String> listGroupB = new ArrayList<String>();
listGroupB.add("B - 1");

List<String> listGroupC = new ArrayList<String>();
listGroupC.add("C - 1");
listGroupC.add("C - 2");

myListForGroup.add("Group A");
myListForGroup.add("Group B");
myListForGroup.add("Group C");

myMapForChild.put(myListForGroup.get(0), listGroupA);
myMapForChild.put(myListForGroup.get(1), listGroupB);
myMapForChild.put(myListForGroup.get(2), listGroupC);
}

OnChildClickListener myOnChildClickListener =
new OnChildClickListener(){

@Override
public boolean onChildClick(ExpandableListView parent,
View v, int groupPosition, int childPosition, long id) {
String strChild = (String)myBaseExpandableListAdapter
.getChild(groupPosition, childPosition);
info.setText("child clicked: " + strChild);
return true;
}};

OnGroupClickListener myOnGroupClickListener =
new OnGroupClickListener(){

@Override
public boolean onGroupClick(ExpandableListView parent,
View v, int groupPosition, long id) {
String strGroup = (String)myBaseExpandableListAdapter
.getGroup(groupPosition);
info.setText("group clicked: " + strGroup);

return false;
//return false
//otherwise, group will not expand when user click on it
}};

OnGroupCollapseListener myOnGroupCollapseListener =
new OnGroupCollapseListener(){

@Override
public void onGroupCollapse(int groupPosition) {
info.setText("group collapse: " + groupPosition);
}};

OnGroupExpandListener myOnGroupExpandListener =
new OnGroupExpandListener(){

@Override
public void onGroupExpand(int groupPosition) {
info.setText("group expand: " + groupPosition);
}};

}

/res/layout/activity_main.xml, modify to add a TextView to display info.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="android-coding.blogspot.com"
android:textStyle="bold" />

<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<ExpandableListView
android:id="@+id/myexpandablelistview"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>

For other files, MyBaseExpandableListAdapter.java, group_layout.xml and item_layout.xml, refer to ExpandableListView example.

Next:
- ExpandableListView with icon



Demikianlah Artikel Detect user action on ExpandableListView, with various Listeners

Sekianlah artikel Detect user action on ExpandableListView, with various Listeners kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.


0 Response to "Detect user action on ExpandableListView, with various Listeners"

Post a Comment