0

Я создал Расширяемый список Посмотреть Мужские и женские виды спорта. В рамках мужского и женского спорта мы можем выбрать один из видов спорта. Я получил, что мои дети отвечают на щелчок, что дает мне ответ, как «Бейсбол нажал». Мой вопрос в том, как я могу получить NewActivity (открыть новую страницу) после того, как я нажму на один из моих видов спорта (например, если я нажму на бейсбол, который откроет для меня новую страницу, где я смогу показать результаты предыдущей игры) , Here is my code:Как создать NewActivity для ребенка из ExpandableListView?

activity_main.xml: 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/mtfinal" 
    > 

    <ExpandableListView 
     android:id="@+id/expandableListView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dp" 
     android:dividerHeight="1.5dp" 
     > 
    </ExpandableListView> 

</LinearLayout> 

MainActivity.java: 

    package com.example.athletic_project.java; 

    import android.support.v7.app.ActionBarActivity; 
    import android.os.Bundle; 
    import android.widget.ExpandableListView; 
    import android.widget.ExpandableListView.OnChildClickListener; 
    import android.widget.Toast; 

    public class MainActivity<View> extends ActionBarActivity { 

     ExpandableListView exv; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      exv=(ExpandableListView)findViewById(R.id.expandableListView1); 
      exv.setAdapter(new MyAdapter(this)); 

      exv.setOnChildClickListener(new OnChildClickListener(){ 


      @Override 
       public boolean onChildClick(ExpandableListView parent, 
         android.view.View v, int groupPosition, int childPosition, 
         long id) { 
        // TODO Auto-generated method stub 
        String itemclicked=MyAdapter.childList[groupPosition][childPosition]; 
        Toast.makeText(MainActivity.this, itemclicked + " is clicked.", Toast.LENGTH_SHORT).show(); 
        return false; 
       } 
      }); 

     } 
    } 
MyAdapter.java: 

package com.example.athletic_project.java; 

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

public class MyAdapter extends BaseExpandableListAdapter { 
private Context context; 
Typeface typeface; 

static String []parentList = {"Men's Sports","Women's Sports"}; 
static String [][]childList = { 
    { 
     "Baseball","Basketball","Bowling","Cross Country","Golf","Soccer","Track & Field" 
    }, 
    { 
     "Baseball","Basketball","Bowling","Cross Country","Golf","Soccer","Track & Field","Volleyball" 
    } 
}; 

    public MyAdapter(Context context) { 
     // TODO Auto-generated constructor stub 
     this.context=context; 
    } 

    @Override 
    public int getGroupCount() { 
     // TODO Auto-generated method stub 
     return parentList.length; 
    } 

    @Override 
    public int getChildrenCount(int groupPosition) { 
     // TODO Auto-generated method stub 
     return childList[groupPosition].length; 
    } 

    @Override 
    public Object getGroup(int groupPosition) { 
     // TODO Auto-generated method stub 
     return groupPosition; 
    } 

    @Override 
    public Object getChild(int groupPosition, int childPosition) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getGroupId(int groupPosition) { 
     // TODO Auto-generated method stub 
     return groupPosition; 
    } 

    @Override 
    public long getChildId(int groupPosition, int childPosition) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public boolean hasStableIds() { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public View getGroupView(int groupPosition, boolean isExpanded, 
      View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     typeface=Typeface.createFromAsset(context.getAssets(),"fonts/KGTribecaStamp.ttf"); 
     TextView tv = new TextView(context); 
     tv.setText(parentList[groupPosition]); 
     tv.setPadding(45, 10, 10, 10); 
     tv.setTextSize(18); 
     tv.setTextColor(Color.BLUE); 
     tv.setTypeface(typeface); 
     return tv; 
    } 

    @Override 
    public View getChildView(int groupPosition, int childPosition, 
      boolean isLastChild, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     typeface=Typeface.createFromAsset(context.getAssets(),"fonts/KGTribecaStamp.ttf"); 
     TextView tv = new TextView(context); 
     tv.setText(childList[groupPosition][childPosition]); 
     tv.setPadding(45, 10, 10, 10); 
     tv.setTextSize(15); 
     tv.setTextColor(Color.WHITE); 
     tv.setTypeface(typeface); 
     return tv; 
    } 

    @Override 
    public boolean isChildSelectable(int groupPosition, int childPosition) { 
     // TODO Auto-generated method stub 
     return true; 
    } 

} 

ответ

0

использование дочернего элемента нажмите слушателем и переключатель заявление, чтобы знать, какой выбран

expListView.setOnChildClickListener(new OnChildClickListener() { 

@Override 
public boolean onChildClick(ExpandableListView parent, View v, 
     int groupPosition, int childPosition, long id) { 
    switch (groupPosition) 
    { 
    case 0: 
      switch (childPosition) 
      { 
      case 0: 
       Baseball(); 
       break; 
      case 1: 
       //do something 
       break; 
      } 
     case 1: 
      switch (childPosition) 

      { 
      case 0: 
       football(); 
       break; 
      case 1: 
       //do something 
       break; 
      } 
    } 
    return false; 
} 

private void baseball() { 
    Intent myIntent = new Intent(MainActivity.this, baseball.class); 
    startActivity(myIntent); 


} 

private void football() { 
    Intent myIntent = new Intent(MainActivity.this, football.class); 
    startActivity(myIntent); 

} }); } 

Теперь создать 2 класса baseball.java и football.java

import android.app.Activity; 
import android.os.Bundle; 

public class football extends Activity { 

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

}} 

import android.app.Activity; 
    import android.os.Bundle; 

    public class baseball extends Activity { 

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

}} 

сейчас нужно 2 XML заполнить football_activity.xml и baseball_activity.xml после них создает нам нужно перейти к AndroidManifest

добавить их в AndroidManifest

<activity 
     android:name=".baseball" 
     android:parentActivityName=".MainActivity" > 
    </activity> 
    <activity 
     android:name=".football" 
     android:parentActivityName=".MainActivity" > 
    </activity> 

сделано! :)

+0

У меня есть вопрос, я пробовал этот код и каждый раз, когда я нажимаю на Baseball, мое приложение перестает работать. Если я нажму на любой другой вид спорта, ничего не случится. Знаете, что случилось? –

0

Вот как вы начинаете новый вид деятельности:

Intent myIntent = new Intent(this.getActivity(), NewActivity.class); 
this.getActivity().startActivity(myIntent); 
this.getActivity().finish(); 
+0

Что я должен создать под классом NewActivity? –

+0

Вы просто напишете название активности, которую хотите запустить. –

+0

Где я должен поставить Intent part? –

Смежные вопросы