我尝试创建动态ViewPager内容输出。我使用硬编码数据完成此操作,但不能使用变量。
首先,我创建活动并从之前的活动和资源中获取数据。
public class result extends FragmentActivity {
private MyAdapter mAdapter;
private ViewPager mPager;
int[] uan;
String [] categoryQuest;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
mAdapter = new MyAdapter (getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
Resources testCat = getResources();
categoryQuest = testCat.getStringArray(R.array.category);
Bundle bndResult = this.getIntent().getExtras();
uan = bndResult.getIntArray("strDef");
}
辅助,我尝试获取uan数组数据并将其放入片段。
公共静态类MyAdapter扩展了FragmentPagerAdapter {
public MyAdapter (FragmentManager fm) {
super (fm);
}
@Override
public int getCount() {
return 2;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new detail(R.string.A1, uan[0]);
case 1:
return new detail(R.string.B1, uan[1]);
default:
return null;
}
}
解释一下,如何从public static onCreate从公共静态类MyAdapter访问UAN数组。
答案 0 :(得分:0)
我假设您尝试从getItem()
方法访问它?
在result
类中添加一个getter(并使用大写Result
,Java约定将其重命名为R
:
public int[] getUAN() {
return uan;
}
如果您尝试从类MyAdapter
中的静态上下文访问它,则需要result
的实例并在其上调用getter。
答案 1 :(得分:0)
在适配器上创建一个方法并将数据传递给它:
private int[] mUan;
public void setUan(int[] uan) {
mUan = uan;
}
然后更改getItem以使用mUan并填充活动onCreate中的数据。