在 pageData 中使用变量作为数组名称
Use variable as array name in pageData
我想用意图调用相同的 ViewPagerActivity,但是作为视图寻呼机的 pageData 中的源,我想根据调用视图寻呼机的 activity 使用不同的数组。所以,我尝试了这个
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());
开头activity"numbers"我有
intent.putExtra("ArrayName", "numbers");
startActivity(intent);
并希望获得 "R.array.numbers" 而不是 "R.array.ArrayName",如果我从 "numbers" activity 调用视图寻呼机,但在这一行的 ViewPagerActivity 上 pageData=getResources().getStringArray(R.array.ArrayName)
我遇到错误“错误:找不到符号变量 ArrayName
"。如何避免此错误?
使用 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);
等等,这是概述而不是确切的代码
我想用意图调用相同的 ViewPagerActivity,但是作为视图寻呼机的 pageData 中的源,我想根据调用视图寻呼机的 activity 使用不同的数组。所以,我尝试了这个
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());
开头activity"numbers"我有
intent.putExtra("ArrayName", "numbers");
startActivity(intent);
并希望获得 "R.array.numbers" 而不是 "R.array.ArrayName",如果我从 "numbers" activity 调用视图寻呼机,但在这一行的 ViewPagerActivity 上 pageData=getResources().getStringArray(R.array.ArrayName)
我遇到错误“错误:找不到符号变量 ArrayName "。如何避免此错误?
使用 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);
等等,这是概述而不是确切的代码