0

내 응용 프로그램이 작동하지만 문제가 있습니다. 내가 첫 번째 헤더 아이를 열 때 Google. 그러나 두 번째 헤더를 다시 열면 Google이 다시 열립니다! 두 번째 헤더를 클릭하면 야후를 열어야합니까? 내가 쓴하지만 하나 개마다 근무 :(나는이 문제를 해결할 수있는 방법? 내가 여기에서 볼 수 있듯이, 첫 번째 배열 목록 이름 링크로 야후의 URL을 첨부하지 않은Expandable onchild 방법

public class osym extends Activity { 

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

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

    // get the listview 
    expListView = (ExpandableListView) findViewById(R.id.lvExp); 
    expListView2 = (ExpandableListView) findViewById(R.id.lvExp); 
    // preparing list data 
    prepareListData(); 

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

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

    expListView2.setAdapter(listAdapter); 




    final ArrayList<String> links = new ArrayList<String>();   
    links.add("http://www.google.com"); // i got problem here. 

    final ArrayList<String> links2 = new ArrayList<String>();   
    links2.add("http://www.yahoo.com"); // when i click second list of child.it must open yahoo but it opening google :(? 


    expListView.setOnChildClickListener(new OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
       int groupPosition, int childPosition, long id) { 

      if(childPosition == 0) 
      { 

       Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
        int0.putExtra("url", links.get(childPosition)); // send the url here 
        startActivity(int0); 
        finish(); 
      } 
     if(childPosition == 1) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // send the url here 
       startActivity(int0); 
       finish(); 
     } 

     if(childPosition == 2) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // send the url here 
       startActivity(int0); 
       finish(); 
     } 
     if(childPosition == 3) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // send the url here 
       startActivity(int0); 
       finish(); 
     } 
    if(childPosition == 4) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // send the url here 
       startActivity(int0); 
       finish(); 
     } 

    if(childPosition == 5) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // send the url here 
       startActivity(int0); 
       finish(); 
     } 

    return false; 

     } 
    }); 
} 


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

    // Adding child data 
    listDataHeader.add("Geometri Çıkmış Sorular"); 
    listDataHeader.add("Matematik Çıkmış Sorular"); 


    // Adding child data 
    List<String> geo = new ArrayList<String>(); 
    geo.add("2009 Öss Geometri Çözümler"); 



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






    listDataChild.put(listDataHeader.get(0), geo); // Header, Child data 
    listDataChild.put(listDataHeader.get(1), mat1); 

} 

답변

0

, 당신은 당신이 무엇을하고 있는지 . 그 ArrayList에를 사용하여 두 번째 배열 목록에 이름 links2에 야후를 통과하지 그래서

final ArrayList<String> links = new ArrayList<String>();   
    links.add("http://www.google.com"); 
    links.add("http://www.yahoo.com"); 


expListView.setOnChildClickListener(new OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
       int groupPosition, int childPosition, long id) { 

      if(childPosition == 0) 
      { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
      int0.putExtra("url", links.get(childPosition)); // refernce for google 
        startActivity(int0); 
        finish(); 
      } 
     if(childPosition == 1) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); // refernce for yahho 
       startActivity(int0); 
       finish(); 
     } 

편집과 같이 변경합니다 당신이 다음이를 사용하는 상위 목록 항목에 부모를 이동하려면

if(childPosition == 0 && groupPosition==0) 
     { 

      Intent int0 = new Intent(getApplicationContext(),webplayer.class); 
       int0.putExtra("url", links.get(childPosition)); 
       startActivity(int0); 
       finish(); 
     } 
합니다.
+1

ROBI에 협조 해 주셔서 감사합니다! 정말 감사합니다 ! – MacSTD

+0

환영 macSTD. –

+0

도움을 주셔서 대단히 감사합니다. 2 일 동안 실행했습니다. – MacSTD

관련 문제