- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到这个异常Attempt to invoke virtual method 'android.view.LayoutInflater android.app.Activity.getLayoutInflater()' on a null object reference
但我能够找到原因。
在mainactivity中我创建了一个ListView元素,结构是:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/list"
/>
然后我为 ListView 创建了一个自定义适配器类,
class ListItem
{
public String shortDescription;
public String type;
public String time;
public int imageId;
public ListItem(String sd, String type, String time, Integer imageId)
{
this.shortDescription = sd;
this.type = type;
this.time = time;
this.imageId = imageId;
}
}
public class CustomList extends ArrayAdapter<Object>{
private Activity context;
private ListItem listItem[];
public CustomList(Activity context, ListItem li[]){
super(context, R.layout.rowlayout, li);
this.listItem = li;
}
@Override
public View getView(int position, View view, ViewGroup parent)
{
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.rowlayout, null, true);
TextView sd = (TextView)rowView.findViewById(R.id.sd);
TextView type = (TextView)rowView.findViewById(R.id.type);
TextView days = (TextView)rowView.findViewById(R.id.days);
ImageView icon = (ImageView)rowView.findViewById(R.id.icon);
sd.setText(listItem[position].shortDescription);
type.setText(listItem[position].type);
days.setText(listItem[position].time);
icon.setImageResource(listItem[position].imageId);
return rowView;
}
我在我的 MainActivity 类中调用它,
public class MainActivity extends ActionBarActivity {
ListView listView;
ListItem listItem[] = new ListItem[2];
Integer[] imageId = {R.drawable.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listItem[0] = new ListItem("test", "test", "test", imageId[0]);
listItem[1] = new ListItem("test1", "test1", "test1", imageId[0]);
CustomList adapter = new CustomList(MainActivity.this, listItem);
listView = (ListView)findViewById(R.id.list);
listView.setAdapter(adapter);
}
}
我在自定义 Adapter 类中遇到异常,位于 LayoutInflater inflater = context.getLayoutInflater();。但是变量 context 是在构造函数调用本身中初始化的。为什么会抛出异常?
最佳答案
context
为 null
。忘记初始化。按如下方式进行:
public CustomList(Activity context, ListItem li[]){
super(context, R.layout.rowlayout, li);
this.listItem = li;
this.context=context; //<< initialize here
}
关于android - 异常 : Attempt to invoke virtual method 'android.view.LayoutInflater android.app.Activity.getLayoutInflater()' on a null object reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29754118/
这个问题在这里已经有了答案: getLayoutInflater() in fragment (5 个答案) 关闭 4 年前。 我正在尝试编写一个应用程序,从在线 MySQL 数据库下载某些事件的数
我想创建一个带有 2 个 TextView 的简单 ListView。原始类:https://github.com/thest1/LazyList/blob/master/src/com/fedorv
此代码属于我的自定义微调器的数组适配器。我在 getLayoutInflater() 方法上收到无法解析方法的错误,我不知道为什么。任何帮助将不胜感激。 public View getCust
需要导入什么或者如何在activity以外的地方调用Layout inflater? public static void method(Context context){ //this do
在 socialNetworksActivity 类中,我有一个方法: public void getResultFromFBPost(String result) { if (result.eq
研究一些(已知是好的)代码我可以看到逻辑如下: if (getContext() instanceof Activity) { inflater=((Activity)getContext
我想在 Fragment 中实现一个警告对话框。 我创建了一个名为 MyDialog 的新类,其中包含: public class MyDialog { public static A
我试图在 Fragment 上的 ListView 中显示我的搜索结果,但它失败了: LayoutInflater inflater = getLayoutInflater(); The method
我可以知道的意思吗 public View getView(int position, View view, ViewGroup parent){ if (view ==nu
我想显示 content_list_drink_details.xml 中的 TextView(配料名称和配料价格)到 cart_layout.xml 的适配器。 但看起来我的 getLayoutIn
当我用下面的代码编译程序时,发生了一个错误。它说 getLayoutInflater ( ) 未定义。我该如何解决? final LayoutInflater inflater = getLayou
我坚持创建自定义适配器。我想在 ListView 内的按钮上设置 setOnClickListener,我发现这个主题看起来不错 how-to-setonclicklistener-on-the-bu
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
现在,为了填充我的 GridView,我在我的每个 Android Activity (其中大部分)上使用了扩展的 BaseAdapter 类。 为了更易于阅读和维护,我尝试将所有 BaseAdapt
我想在我的 webView 中添加全屏模式 - 用于 YouTube 视频 -。我发现了这个例子 https://stackoverflow.com/a/16179544/5070495 。我已遵循所
tics 有 3 个项目。以下代码创建了 3 个票证项目,但始终设置第一个票证的 TextView 的文本。 public void onSuccess(int i, Header[] headers
我正在尝试使用自定义日期选择器 date picker 但是我在 fragment 中膨胀根布局时遇到了这个错误: public void button_click(View view) {
什么是真正的区别: return context.getLayoutInflater().inflate(R.layout.my_layout, null); Inflate a new view h
简单的“不”回答会让我平静下来。如果有什么不同,那是什么? 最佳答案 没有 只要调用 getLayoutInflater() 的 Activity 或 Window 与调用 getSystemServ
我得到这个异常Attempt to invoke virtual method 'android.view.LayoutInflater android.app.Activity.getLayoutI
我是一名优秀的程序员,十分优秀!