我已经用ImageView和TextView制作了抽屉菜单,它可以run.However,当我想用两个ImageView和一个TextView创建抽屉菜单时,它会用我的第二个ImageView显示错误(“尝试调用虚拟方法”)(我代码中的变量名称是“img”)
我的代码如下:
public class MenuListAdapter extends BaseAdapter {
//...
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
TextView Title = null;
ImageView Icon = null;
ImageView img = null;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.drawer, parent, false);
// Locate the TextViews in drawer_list_item.xml
Title = (TextView) convertView.findViewById(R.id.title);
// Locate the ImageView in drawer_list_item.xml
Icon = (ImageView) convertView.findViewById(R.id.icon);
// Locate the ImageView in drawer_list_item.xml
img = (ImageView) convertView.findViewById(R.id.img);
}
Title.setText(mTitle[position]);
Icon.setImageResource(mIcon[position]);
img.setImageResource(mimg[position]);
return v;
}
这是我的日志:
09-16 22:25:38.458:E/AndroidRuntime(14966):致命例外:主
09-16 22:25:38.458:E/Android runtime(14966):Java . lang . nullpointerexception:尝试在空对象引用上调用虚拟方法“Android . view . view Android . view . view . findviewbyid(int)”09-16 22:25:38.458:E/Android runtime(14966):at com . test . adapter . menulistadapter . get view(menulistadapter . Java:84) 09-16 22:25:38.458:E/Android runtime(14966):at Android . widget . frame layout . onlayout(frame layout . Java:508)09-16 22:25:38.458:E/Android runtime(14966):at Android . view . view . layout(view . Java:15686)09-16 22:25:38.458:E/Android runtime(14966 09-16 22:25:38.458:E/Android runtime(14966):at Android . view . choreographer . do frame(choreographer . Java:550)09-16 22:25:38.458:E/Android runtime(14966):at Android . view . choreographer $ framedisplayeventreceiver . run(choreographer . Java:753)09-16 22:25:38.458:E/Android
<ImageView
android:id="@+id/icon"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="22dp"
android:layout_marginRight="20dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#848484"
android:textSize="15dp" />
<TextView
android:id="@+id/textABC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
您已将膨胀视图分配给 v
,但您正在使用 convertView
来查找膨胀视图小部件。摆脱v并使用只转换视图
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.drawer, parent, false);
}
// Locate the TextViews in drawer_list_item.xml
TextView title = (TextView) convertView.findViewById(R.id.title);
// Locate the ImageView in drawer_list_item.xml
ImageView icon = (ImageView) convertView.findViewById(R.id.icon);
// Locate the ImageView in drawer_list_item.xml
ImageView img = (ImageView) convertView.findViewById(R.id.img);
title.setText(mTitle[position]);
icon.setImageResource(mIcon[position]);
img.setImageResource(mimg[position]);
return convertView;
}
适配器目录和文件结构 适配器目录和文件结构布局的例子: /application/libraries/Driver_name Driver_name.php drivers Driver_name_subclass_1.php Driver_name_subclass_2.php Driver_name_subclass_3.php 注意: 为了在大小写敏感的文件系统上维持兼容性,这个 Drive
我有一个ViewPager里面的RecyclerView适配器来显示多个图像。 ViewPager适配器: 问题:当我上下滚动回收站视图时,ViewPager适配器会被一遍又一遍地创建,即使它是以前创建的(我在日志中看到它)。我知道每次都调用onBindViewHolder(),所以我尝试了这个: 但这一次只加载了第一个ViewPager。那么,我必须做些什么来避免每次创建适配器呢?
那么如何将上面的xml代码转换为类似的DSL特定代码呢?
如何在我的项目中动态创建以轮询和检索服务器中的文件?
流是Gateway-->RequsetChannel-->Transform-->OutboundMailChannl-->MailSender(MailAdapter)
问题内容: 我有一个片段,比如,和自定义。我在此适配器中为列表行中的按钮设置。 按下按钮时,我需要通知片段。如何调用此接口? 请帮助。 问题答案: 创建一个新的构造函数和一个实例变量: 制作适配器时,将为实例变量提供适当的引用以进行保存。 要通过点击调用片段,请执行以下操作: 制作时,您还必须将片段传递给适配器。例如 因为this它将引用您的Fragment,现在是。 请记住,在片段更改的方向上,