我尝试将值从 xml 数组
传递到 Listfragment
。
public class TabsPagerAdapter extends FragmentPagerAdapter {
static Context context;
static Resources res = null;
static String[] CONTENT = null;
public TabsPagerAdapter(FragmentManager fm, Context c) {
super(fm);
context = c;
}
@Override
public ListFragment getItem(int index) {
res = context.getResources();
CONTENT = res.getStringArray(R.array.trg_values);
ListFragment fragment = new DaerahFragment();
Bundle args = new Bundle();
args.putString("daerah", CONTENT[index] );
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
// get item count - equal to number of tabs
return 7;
}
}
这是我的 xml
<string-array name="trg_values">
<item name="Kuala Terengganu">1</item>
<item name="Marang">2</item>
<item name="Dungun">3</item>
<item name="Kemaman">4</item>
<item name="Hulu Terengganu">5</item>
<item name="Setiu">6</item>
<item name="Besut">7</item>
</string-array>
错误:
08-03 16:12:00.992: E/AndroidRuntime(28017): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
08-03 16:12:00.992: E/AndroidRuntime(28017): at com.jkmt.ppbanjir.adapter.TabsPagerAdapter.getItem(TabsPagerAdapter.java:62)
适配器实例化
mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), null);
viewPager.setAdapter(mAdapter);
最佳答案
问题出在这一行
mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), null);
您将 null 作为Context
传递,并将 null 分配给适配器中的成员。当调用 getItem 并引用成员时,应用程序会因 NullPointerException
崩溃。更改为
mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), this);
如果您在 Activity
内,或者
mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), getActivity());
如果您位于Fragment
关于java - pageradapter 中的 getResources 数组 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31782628/