在java中创建线性布局并将其id传递给viewpager适配器时出错。正在引发找不到资源异常
这是我的源代码。在这里,我创建布局和添加文本视图的布局。我将所有布局ID放入arraylist中,并将其传递给customviewpager适配器在java中创建线性布局并将其id传递给viewpager适配器时出错。正在引发找不到资源异常,java,android,android-layout,exception,Java,Android,Android Layout,Exception,这是我的源代码。在这里,我创建布局和添加文本视图的布局。我将所有布局ID放入arraylist中,并将其传递给customviewpager适配器 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
ArrayList<Integer> arrayList = new ArrayList<Integer>(3);
LinearLayout rlayout = new LinearLayout(this);
LinearLayout.LayoutParams rParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
rlayout.setId(R.id.rid);
rlayout.setLayoutParams(rParams);
TextView rtext = new TextView(this);
rtext.setText("hello");
rtext.setId(R.id.rtext);
rtext.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
rlayout.addView(rtext);
LinearLayout blayout = new LinearLayout(this);
LinearLayout.LayoutParams bParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
blayout.setId(R.id.bid);
blayout.setLayoutParams(bParams);
TextView btext = new TextView(this);
btext.setText("helo");
btext.setId(R.id.btext);
btext.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
blayout.addView(btext);
LinearLayout glayout = new LinearLayout(this);
LinearLayout.LayoutParams gParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
glayout.setId(R.id.gid);
TextView gtext = new TextView(this);
gtext.setText("hello");
gtext.setId(R.id.gtext);
glayout.setLayoutParams(gParams);
gtext.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
glayout.addView(gtext);
arrayList.add(0,R.id.bid);
arrayList.add(1,R.id.rid);
arrayList.add(2,R.id.gid);
viewPager.setAdapter(new CustomPagerAdapter(this,arrayList));
}
}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager ViewPager=(ViewPager)findViewById(R.id.ViewPager);
ArrayList ArrayList=新的ArrayList(3);
LinearLayout rlayout=新的LinearLayout(本);
LinearLayout.LayoutParams rParams=新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
rlayout.setId(R.id.rid);
rlayout.setLayoutParams(rParams);
TextView rtext=新的TextView(此);
rtext.setText(“你好”);
rtext.setId(R.id.rtext);
rtext.setLayoutParams(新的ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_内容,ViewGroup.LayoutParams.WRAP_内容));
rlayout.addView(rtext);
LinearLayout blayout=新的LinearLayout(本);
LinearLayout.LayoutParams bParams=新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
blayout.setId(R.id.bid);
blayout.setLayoutParams(bParams);
TextView btext=新的TextView(此);
b文本设置文本(“helo”);
btext.setId(R.id.btext);
b text.setLayoutParams(新的ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_内容,ViewGroup.LayoutParams.WRAP_内容));
blayout.addView(btext);
LinearLayout glayout=新的LinearLayout(本);
LinearLayout.LayoutParams gParams=新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
glayout.setId(R.id.gid);
TextView gtext=新的TextView(此);
gtext.setText(“你好”);
gtext.setId(R.id.gtext);
glayout.setLayoutParams(gParams);
gtext.setLayoutParams(新的ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_内容,ViewGroup.LayoutParams.WRAP_内容));
glayout.addView(gtext);
arrayList.add(0,R.id.bid);
arrayList.add(1,R.id.rid);
arrayList.add(2,R.id.gid);
setAdapter(新的CustomPagerAdapter(这个,arrayList));
}
}
这是视图寻呼机适配器。在这里,我接收资源ID,膨胀布局并将其转换为viewgroup。但我得到的资源没有发现异常
public class CustomPagerAdapter extends PagerAdapter {
private Context mContext;
private ArrayList <Integer> viewList;
public CustomPagerAdapter(Context context, ArrayList arrayList) {
mContext = context;
viewList = arrayList;
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
LayoutInflater inflater = LayoutInflater.from(mContext);
ViewGroup layout = (ViewGroup)
inflater.inflate(viewList.get(position), collection, false);
collection.addView(layout);
return layout;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object
view) {
collection.removeView((View) view);
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
public类CustomPagerAdapter扩展了PagerAdapter{
私有上下文;
私有ArrayList视图列表;
公共CustomPagerAdapter(上下文,ArrayList ArrayList){
mContext=上下文;
viewList=arrayList;
}
@凌驾
公共对象实例化项(视图组集合,int位置){
LayoutFlater充气机=LayoutFlater.from(mContext);
视图组布局=(视图组)
充气器。充气(查看列表。获取(位置)、收集、错误);
collection.addView(布局);
返回布局;
}
@凌驾
公共项(视图组集合、int位置、对象
(视图){
collection.removeView((视图)视图);
}
@凌驾
public int getCount(){
返回viewList.size();
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图==对象;
}
}
你在那里做的事情没有真正意义。为什么要尝试对已动态创建的视图进行充气?膨胀是为了从布局XML创建视图
s。但我如何从它们的id获取布局以添加它的视图组集合。你真的不知道。不是那样的。如果这就是为查看页面
创建视图
的方法,那么只需向适配器传递数组列表
。好的。谢谢我会努力工作的。谢谢。但不是ArrayList,而是我做了ArrayList