2014-09-21 2 views
0

내가 원하는 것은 Expandable Listview에서 하나의 항목을 클릭하면 새로운 활동이 표시됩니다. 예를 들어 확장 가능한 목록보기에 이름 목록 (paul, john, mark, james, luke)이 있고 #james를 누르면 새 활동에 #james에 대한 정보가 포함되어 있습니다.when Expandable listview의 항목을 클릭하면 다음 활동으로 이동합니다.

/*********************************CategoryScreen.java*************/ 

package filipiknows.open; 

import filipiknows.open.R; 

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

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

public class CategoryScreen extends Activity { 

    ELAdapter listAdapter; 
    ExpandableListView expListView; 
    List<String> listDataHeader; 
    HashMap<String, List<String>> listDataChild; 

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

     // get the listview 
     expListView = (ExpandableListView) findViewById(R.id.lvExp); 

     // preparing list data 
     prepareListData(); 

     listAdapter = new ELAdapter(this, listDataHeader, listDataChild); 

     // setting list adapter 
     expListView.setAdapter(listAdapter); 

     // Listview Group click listener 
     expListView.setOnGroupClickListener(new OnGroupClickListener() { 

      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, 
        int groupPosition, long id) { 
       // Toast.makeText(getApplicationContext(), 
       // "Group Clicked " + listDataHeader.get(groupPosition), 
       // Toast.LENGTH_SHORT).show(); 
       return false; 
      } 
     }); 


     // Listview on child click listener 
     expListView.setOnChildClickListener(new OnChildClickListener() { 

      @Override 
      public boolean onChildClick(ExpandableListView parent, View v, 
        int groupPosition, int childPosition, long id) { 
       // TODO Auto-generated method stub 
       return false; 
      } 
     }); 
    } 


    private void prepareListData() { 
     listDataHeader = new ArrayList<String>(); 
     listDataChild = new HashMap<String, List<String>>(); 

     // Adding child data 
     listDataHeader.add("Phillippines Heroes"); 
     listDataHeader.add("Presidents"); 
     listDataHeader.add("Culture and Tradition"); 
     listDataHeader.add("Tourist Spots"); 
     listDataHeader.add("Filipino Dishes"); 
     listDataHeader.add("Traditional Customes"); 
     listDataHeader.add("Traditional Games"); 

     // Adding child data 
     List<String> PhillippinesHeroes = new ArrayList<String>(); 
     PhillippinesHeroes.add("Dr. Jose Rizal"); 
     PhillippinesHeroes.add("Andres Bonifacio"); 
     PhillippinesHeroes.add("General Gregorio del Pilar"); 
     PhillippinesHeroes.add("General Emilio Aguinaldo"); 
     PhillippinesHeroes.add("Apolinario Mabini"); 
     PhillippinesHeroes.add("Father Mariano Gomez"); 
     PhillippinesHeroes.add("Father Father Jose Burgos "); 
     PhillippinesHeroes.add("Father Father Jacinto Zamora"); 
     PhillippinesHeroes.add("Trece Martirez"); 
     PhillippinesHeroes.add("Emilio Jacinto"); 
     PhillippinesHeroes.add("General Antonio Luna"); 
     PhillippinesHeroes.add("Melchora Aquino"); 
     PhillippinesHeroes.add("Graciano Lopez-Jaena"); 
     PhillippinesHeroes.add("Panday Pira"); 
     PhillippinesHeroes.add("Mariano Ponce"); 
     PhillippinesHeroes.add("Gregoria de Jesus"); 
     PhillippinesHeroes.add("Fernando Ma. Guerrero"); 
     PhillippinesHeroes.add("Felipe Agoncillo"); 
     PhillippinesHeroes.add("Juan Luna"); 
     PhillippinesHeroes.add("Rafael Palma"); 
     PhillippinesHeroes.add("Marcelo H. Del Pilar"); 
     PhillippinesHeroes.add("Pedro Paterno"); 
     PhillippinesHeroes.add("Leona Florentino"); 
     PhillippinesHeroes.add("Isabelo delos Reyes"); 
     PhillippinesHeroes.add("Artemio Ricarte"); 
     PhillippinesHeroes.add("Jose Palma"); 
     PhillippinesHeroes.add("Rajah Lakandola"); 
     PhillippinesHeroes.add("Rajah Soliman"); 
     PhillippinesHeroes.add("Leonor Rivera"); 
     PhillippinesHeroes.add("Marcela Mariño Agoncillo"); 
     PhillippinesHeroes.add("Galicano Apacible"); 
     PhillippinesHeroes.add("Jose Ma. Panganiban"); 
     PhillippinesHeroes.add("Diego Silang"); 
     PhillippinesHeroes.add("Maria Josefa Gabriela Silang"); 
     PhillippinesHeroes.add("Lapu-Lapu"); 
     PhillippinesHeroes.add("Francisco Baltazar"); 
     PhillippinesHeroes.add("Epifanio delos Santos"); 
     PhillippinesHeroes.add("Francisco Dagohoy"); 
     PhillippinesHeroes.add("Teresa Magbanua"); 
     PhillippinesHeroes.add("Trinidad Tecson"); 
     PhillippinesHeroes.add("Agueda Esteban"); 
     PhillippinesHeroes.add("Julian Felipe"); 
     PhillippinesHeroes.add("Marina Dizon"); 
     PhillippinesHeroes.add("General Francisco Makabulos"); 

     List<String> Presidents = new ArrayList<String>(); 
     Presidents.add("Emilio Aguinaldo"); 
     Presidents.add("Manuel L. Quezon"); 
     Presidents.add("José P. Laurel"); 
     Presidents.add("Sergio S. Osmeña"); 
     Presidents.add("Manuel A. Roxas"); 
     Presidents.add("Elpidio R. Quirino"); 
     Presidents.add("Ramón F. Magsaysay"); 
     Presidents.add("Carlos P. García"); 
     Presidents.add("Diosdado P. Macapagal"); 
     Presidents.add("Ferdinand E. Marcos"); 
     Presidents.add("Corazón C. Aquino"); 
     Presidents.add("Fidel V. Ramos"); 
     Presidents.add("Joseph Ejército Estrada"); 
     Presidents.add("Gloria Macapagal Arroyo"); 
     Presidents.add("Benigno S. Aquino III"); 

     List<String> CultureAndTradition = new ArrayList<String>(); 
     CultureAndTradition.add(""); 
     CultureAndTradition.add(""); 
     CultureAndTradition.add(""); 
     CultureAndTradition.add(""); 
     CultureAndTradition.add(""); 
     CultureAndTradition.add(""); 

     List<String> TouristSpots = new ArrayList<String>(); 
     TouristSpots.add("Manila"); 
     TouristSpots.add("Bohol"); 
     TouristSpots.add("Boracay"); 
     TouristSpots.add("baguio"); 
     TouristSpots.add("Cagayan"); 
     TouristSpots.add("Cagayan De Oro"); 
     TouristSpots.add("Camiguin"); 
     TouristSpots.add("Cebu"); 
     TouristSpots.add("Davao City"); 
     TouristSpots.add("Ilocos Norte"); 
     TouristSpots.add("Negros Oriental"); 
     TouristSpots.add("Puerto Prencesa"); 
     TouristSpots.add("Zambales"); 

     List<String> FilipinoDishes = new ArrayList<String>(); 
     FilipinoDishes.add("Adobo"); 
     FilipinoDishes.add("Balut"); 
     FilipinoDishes.add("Lechon"); 
     FilipinoDishes.add("Sisig"); 
     FilipinoDishes.add("Crispy Pata"); 
     FilipinoDishes.add("Chicken Inasal"); 
     FilipinoDishes.add("Pansit Palabok"); 
     FilipinoDishes.add("Bulalo"); 
     FilipinoDishes.add("Arroz Caldo"); 
     FilipinoDishes.add("Kare-Kare"); 
     FilipinoDishes.add("Sinigang"); 
     FilipinoDishes.add("Dinuguan at puto"); 
     FilipinoDishes.add("Laing"); 
     FilipinoDishes.add("Pinakbet"); 
     FilipinoDishes.add("Bicol Express"); 
     FilipinoDishes.add("Tinola"); 
     FilipinoDishes.add("Halo-Halo"); 
     FilipinoDishes.add("Taho"); 
     FilipinoDishes.add("Turon"); 
     FilipinoDishes.add("Longaniza"); 
     FilipinoDishes.add("Lumpiang Sariwa"); 

     List<String> TraditionalCustomes = new ArrayList<String>(); 
     TraditionalCustomes.add("Barong Tagalog"); 
     TraditionalCustomes.add("Mestiza"); 
     TraditionalCustomes.add("Maria Clara"); 
     TraditionalCustomes.add("Kimona"); 
     TraditionalCustomes.add("Igorot"); 
     TraditionalCustomes.add("Muslim Attire"); 
     TraditionalCustomes.add("Malong"); 
     TraditionalCustomes.add("B’LAAN"); 
     TraditionalCustomes.add("Bagobo") 
     TraditionalCustomes.add("T’BOLI"); 
     TraditionalCustomes.add("Mandaya"); 
     TraditionalCustomes.add("Maranaw"); 
     TraditionalCustomes.add("Yakan"); 
     TraditionalCustomes.add("Ifugao"); 
     TraditionalCustomes.add("Kalinga"); 
     TraditionalCustomes.add("GA’DANG"); 
     TraditionalCustomes.add("Bontoc"); 
     TraditionalCustomes.add("Samal"); 
     TraditionalCustomes.add("Ibaloi"); 
     TraditionalCustomes.add("Aetas"); 
     TraditionalCustomes.add("Pulangiyen"); 
     TraditionalCustomes.add("Matigsalug"); 

     List<String> TraditionalGames = new ArrayList<String>(); 
     TraditionalGames.add("Tumbang Preso"); 
     TraditionalGames.add("Luksong-Baka"); 
     TraditionalGames.add("Luksong-tinik"); 
     TraditionalGames.add("Piko"); 
     TraditionalGames.add("Agawan Base"); 
     TraditionalGames.add("Bahay-Bahayan"); 
     TraditionalGames.add("Chinese Garter"); 
     TraditionalGames.add("Holen"); 
     TraditionalGames.add("Jack 'n' Poy"); 
     TraditionalGames.add("Langit-Lupa"); 
     TraditionalGames.add("Pitik-Bulag"); 
     TraditionalGames.add("Sawsaw-Suka"); 
     TraditionalGames.add("Sipa"); 
     TraditionalGames.add("Taguan"); 
     TraditionalGames.add("Takip-Silim"); 
     TraditionalGames.add("Ten-Twenty"); 
     TraditionalGames.add("Tinikling"); 
     TraditionalGames.add("Ubusan Lahi"); 
     TraditionalGames.add("Teks"); 

     // Header at Child data 
     listDataChild.put(listDataHeader.get(0), PhillippinesHeroes); 
     listDataChild.put(listDataHeader.get(1), Presidents); 
     listDataChild.put(listDataHeader.get(2), CultureAndTradition); 
     listDataChild.put(listDataHeader.get(3), TouristSpots); 
     listDataChild.put(listDataHeader.get(4), FilipinoDishes); 
     listDataChild.put(listDataHeader.get(5), TraditionalCustomes); 
     listDataChild.put(listDataHeader.get(6), TraditionalGames); 
    } 
} 

/********** 확장리스트 뷰 어댑터 (ELAdapter.java) *********************** ******************** 당신이 할하려고하는 것이 무엇인지 메신저 완전히 확실하지으로/

package filipiknows.open; 

import filipiknows.open.R; 

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

import android.content.Context; 
import android.graphics.Typeface; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.TextView; 

public class ELAdapter 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; 

    public ELAdapter(Context context, List<String> listDataHeader, 
      HashMap<String, List<String>> listChildData) { 
     this._context = context; 
     this._listDataHeader = listDataHeader; 
     this._listDataChild = listChildData; 
    } 

    @Override 
    public Object getChild(int groupPosition, int childPosititon) { 
     return this._listDataChild.get(this._listDataHeader.get(groupPosition)) 
       .get(childPosititon); 
    } 

    @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.list_item, null); 
     } 

     TextView txtListChild = (TextView) convertView 
       .findViewById(R.id.lblListItem); 

     txtListChild.setText(childText); 
     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; 
    } 

} 
+0

그리고 지금 아이템을 클릭하면 어떻게됩니까? – joao2fast4u

+1

잘 ChildClickListener를 첨부했으나 유용한 정보로 채우지 못했습니다. 당신은 클릭 리스너에서 액티비티를 시작하고 필요한 모든 데이터를 전달하여 표시 할 모든 정보를 표시하거나 db/whatever에서 데이터를 가져 오는 데 필요한 충분한 정보를 전달하십시오 –

+0

Daniel이 말한 바는 정확하며 사용하지 않는 이유는 무엇입니까? 정보를로드하는 부분? –

답변

0

,이 방법 ID의 시작이다 클릭 된 사람 텍스트를 보여주는 텍스트 뷰가있는 활동. 에 ClickListener

@Override 
public boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) { 
    // TODO Auto-generated method stub 
    Intent i = new Intent(this, DetailsActivity.class); 
    i.putExtra("Name", listDataChild.get(this.listDataHeader.get(groupPosition)).get(childPosititon)); 
    startActivity(i); 
    return true; 
} 

간단한 활동의 ​​

구현이 당신이 당신의 필요에 그것을 적응하지 못할 경우, 그것을 수행하는 방법을 보여 주어야한다

public class DetailsActivity extends Activity { 

    TextView tv; 

    public View onCreate(SavedInstanceState bundle) { 
     tv = new TextView(this); 

     return tv; 
    } 

    public void onResume() { 
     super.onResume(); 

     tv.setText(getIntent().getStringExtra("Name", "SomeDefaultValue")); 
    } 

} 

텍스트 보여주기 위해, 당신은보고 할 수 있습니다 튜토리얼 :)

관련 문제