0

我正在开发简单的应用程序,我制作了一个包含 3 个视图的 viewpager,我需要将 listview 放在 viepager 中,但 listview 不会显示这是我的 viewpager 包 com.Schoolreporting.androidApp 的特殊类;

import java.util.ArrayList;

import android.content.Context;
import android.location.Address;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
 import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

  public class MyPagerAdapter extends PagerAdapter {
String Name;


// State number of pages
public int getCount() {
    return 4;
}

public void setName(String Name) {
    this.Name = Name;
}


// Set each screen's content
@Override
public Object instantiateItem(View container, int position) {
    Context context = container.getContext();
    LinearLayout layout = new LinearLayout(context);

    // Add elements
    TextView textItem = new TextView(context);
    ListView grades=new ListView(context);
    ArrayList<String>names=new ArrayList<String>();
    names.add("Adel");
    names.add("zetta");
    names.add("Pringy");

    ArrayAdapter<String> adapter=new ArrayAdapter<String>       (context,android.R.layout.simple_list_item_1,names);
    grades.setAdapter(adapter);
    switch (position) {
    case 0:


        Toast.makeText(context,names.get(1),Toast.LENGTH_LONG).show();
        textItem.setText(Name + "'s Grades");


        grades.setAdapter(adapter);
        Toast.makeText(context,names.get(1),Toast.LENGTH_LONG).show();
        break;
    case 1:
        grades.setAdapter(adapter);

        textItem.setText(Name + "'s grades");

        break;
    case 2:

        textItem.setText( Name + "'s feedback");


        break;
    case 3:

        textItem.setText( Name + "'s school");


        break;

    }
    layout.addView(textItem);
    ((ViewPager) container).addView(layout, 0); // This is the line I
                                                // added
    return layout;
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
    ((ViewPager) arg0).removeView((View) arg2);
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
    return arg0 == ((View) arg1);
}

@Override
public Parcelable saveState() {
    return null;
}

}
4

1 回答 1

0

您可以使用以下代码执行此操作:

Context context;
List<View> viewList;

public MyPagerAdapter(Context context) {
    this.context = context;
    viewList = new ArrayList<View>();
    LayoutInflater inflater = LayoutInflater.from(context);
    View pg1 = inflater.inflate(R.layout.pg1_layout, null);
    View pg2 = inflater.inflate(R.layout.pg2_layout, null);
    View pg3 = inflater.inflate(R.layout.pg3_layout, null);
    viewList.add(pg1);
    viewList.add(pg2);
    viewList.add(pg3);
}
于 2013-07-28T15:17:27.857 回答