【问题标题】:Use variable as array name in pageData在 pageData 中使用变量作为数组名
【发布时间】:2019-04-25 08:20:24
【问题描述】:

我想用意图调用相同的 ViewPagerActivity,但作为视图寻呼机的 pageData 中的源,我想根据调用视图寻呼机的活动使用不同的数组。所以,我尝试了这个

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_viewpager);
    //Get the data to be swiped through

    Intent intent = getIntent();
    String ArrayName = intent.getStringExtra("ArrayName");

    //pageData=getResources().getStringArray(R.array.numbers);
    pageData=getResources().getStringArray(R.array.ArrayName);
    //get an inflater to be used to create single pages
    inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    //Reference ViewPager defined in activity
    vp=(ViewPager)findViewById(R.id.viewPager);
    //set the adapter that will create the individual pages
    vp.setAdapter(new MyPagesAdapter());

在开始活动“数字”中我有

intent.putExtra("ArrayName", "numbers"); startActivity(intent);

如果我从“numbers”活动中调用视图寻呼机,但在这一行pageData=getResources().getStringArray(R.array.ArrayName) 中的 ViewPagerActivity 上,想要获取“R.array.numbers”而不是“R.array.ArrayName”

我有一个错误“错误:找不到符号变量 ArrayName "。我怎样才能避免这个错误?

【问题讨论】:

    标签: android arrays android-intent dynamic-variables


    【解决方案1】:

    使用 switch 或 if else 结构来实现这一点

               String Arrayname = getIntent().getStringExtra("ArrayName");
                switch(Arrayname.toLowerCase()){
                    case "numbers":
                    pageData=getResources().getStringArray(R.array.numbers);
                    mAdapter = new MyPagesAdapter(pageDate);
                        break;
                    case "alphabet":
                    list=getResources().getStringArray(R.array.alphabet);
                    mAdapter = new MyPagesAdapter(list)
                        break;
    
                }
              vp.setAdapter(mAdapter);
    

    等等,这是概述而不是确切的代码

    【讨论】:

      猜你喜欢
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2012-05-08
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多