从静态java中获取公共类的数据

时间:2014-02-02 17:49:57

标签: java android android-fragments

我尝试创建动态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数组。

2 个答案:

答案 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中的数据。