- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 ViewStub 中创建一个 ListView,但我一直收到 NullPointerException
。我的按钮在 ViewStub 中按预期工作。失败的代码如下:
else if(v.getId() == R.id.comments_button_series_view){
if(stubUsed == false){
stub = (ViewStub) findViewById(R.id.stub);
View inflatedStub = stub.inflate();
String[] comments = new String[]{"comment1", "comment2"};
commentsAdapter = new ArrayAdapter<String>(this,
R.layout.patient_list_element,
R.id.comments_list_comments_view, comments);
commentsList = (ListView)findViewById(R.id.comments_list_comments_view);
commentsList.setAdapter(commentsAdapter);
我认为它在 commentsList.setAdapter(commentsAdapter) 处失败了。
这个包含 ListView 的 ViewStub 内容的 XML 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/comment_stub"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/settings_background" >
<Button
android:id="@+id/comments_button_comment_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="62dp"
android:text="Add comment" />
<ListView
android:id="@+id/comments_list_comments_view"
android:layout_width="match_parent"
android:layout_height="470dp"
android:layout_alignLeft="@+id/pin_button_comments_view"
android:layout_below="@+id/comments_button_comment_view" >
</ListView>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/comments_button_comment_view"
android:layout_marginRight="119dp"
android:text="COMMENTS"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/pin_button_comments_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/comments_button_comment_view"
android:layout_alignBottom="@+id/comments_button_comment_view"
android:layout_marginRight="30dp"
android:layout_toLeftOf="@+id/comments_button_comment_view"
android:text="Add Pin" />
<Button
android:id="@+id/hide_button_comments_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/pin_button_comments_view"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:text="Hide" />
</RelativeLayout>
我已经在不使用 viewstub 的情况下测试了 ListView 的代码,它工作得很好。
我想我明白了吗?任何帮助表示赞赏! :)
编辑:
感谢快速回复!
contentView 设置在 ViewStub 膨胀的 View 上。但正如所提到的,它与按钮一起工作得很好,但我不明白为什么我用 ListView 得到一个空指针! :(
这是 LogCat 的结果:
04-11 10:37:55.400: W/dalvikvm(971): threadid=1: thread exiting with uncaught exception (group=0x40014760)
04-11 10:37:55.450: E/AndroidRuntime(971): FATAL EXCEPTION: main
04-11 10:37:55.450: E/AndroidRuntime(971): java.lang.NullPointerException
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:396)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:366)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.AbsListView.obtainView(AbsListView.java:1964)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ListView.makeAndAddView(ListView.java:1756)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ListView.fillDown(ListView.java:656)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ListView.fillFromTop(ListView.java:716)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.ListView.layoutChildren(ListView.java:1609)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.AbsListView.onLayout(AbsListView.java:1794)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.FrameLayout.onLayout(FrameLayout.java:400)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1542)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1403)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.LinearLayout.onLayout(LinearLayout.java:1314)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.widget.FrameLayout.onLayout(FrameLayout.java:400)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.View.layout(View.java:9330)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewGroup.layout(ViewGroup.java:3795)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewRoot.performTraversals(ViewRoot.java:1201)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.view.ViewRoot.handleMessage(ViewRoot.java:1944)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.os.Looper.loop(Looper.java:126)
04-11 10:37:55.450: E/AndroidRuntime(971): at android.app.ActivityThread.main(ActivityThread.java:3997)
04-11 10:37:55.450: E/AndroidRuntime(971): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 10:37:55.450: E/AndroidRuntime(971): at java.lang.reflect.Method.invoke(Method.java:491)
04-11 10:37:55.450: E/AndroidRuntime(971): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
04-11 10:37:55.450: E/AndroidRuntime(971): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
04-11 10:37:55.450: E/AndroidRuntime(971): at dalvik.system.NativeStart.main(Native Method)
再次感谢:)
最佳答案
创建 ArrayAdapter
对象时似乎有错误。构造函数中的第三个参数 (textViewResourceId
) 应该是 TextView
而不是 ListView
。
改变它,它应该可以工作。
关于android - 在 ViewStub 中使用 ListView 时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106921/
我实现了这样的自定义 View : public class HeaderView extends LinearLayout { @Bind(R.id.bill_summary_layout)
我对 View stub 有疑问。 这是我java文件中的ViewStub ViewStub stub = (ViewStub) findViewById(R.id.stub1); ArrayAdap
我得到一个错误 07-04 01:49:56.325: E/AndroidRuntime(9693): java.lang.NullPointerException 同时尝试在交易完成后在 Fragm
这是我的用例: 我想在运行时更改我的膨胀布局,比如首先我膨胀布局 a,然后一段时间后我想显示布局 B,然后是布局 C,等等。 我在某处读到,与其在主布局中包含布局然后隐藏/取消隐藏,不如使用 view
LinearLayout 在 iflating ViewStub 后没有边距。充气后我只能通过编程方式设置边距还是有其他方法? 最佳答案 我遇到了同样的问题,但使用的是 RelativeLayout。
在我的应用程序中,我有一个微调器和一个 ViewStub,根据从微调器中选择的用户项目,我必须膨胀不同的布局并在微调器下方显示膨胀的布局。当我的应用程序启动时,ViewStub 会在第一次从微调器中选
我有一个 ListView,其中 listview 的每一行都包含大约 10 个 ImageButton。这些按钮中的大多数都具有可见性 = 消失并且仅在非常罕见的情况下出现。我想知道是否值得将这些
我想按语法在 View 组中定位一个 View stub 。 我尝试使用 setLayoutParams() 方法,但它不适用于 View stub 。 请提出任何解决方案。 下面是我的代码。 set
我正在尝试开发一个相当复杂的 appwidget,它可以通过编程方式更改它的一部分。 Android 建议这样的事情使用 ViewStub 小部件。 根据 AppWidgets page Remote
我正在研究您启动 Navigation Drawer Activity 时生成的示例代码。在 Android 工作室中。我想做的是以编程方式更改包含的 View ,我的研究表明 ViewStub 是做
我的布局上有一些 stub ,我想知道是否可以为它们设置动画,以便它们从一个滑到另一个。 非常感谢! 最佳答案 您可以使用 ViewFlipper 作为一个简单的解决方案。只需使用 ViewFlipp
我想将 ViewStub 添加到我的布局中。 ViewStub 应该是这样的,如 xml: 我已经想出了这段代码,但布局没有显示。 我正在重复使用 id,因为我要删除并再次添加 stub 。我猜代码
我有一个元素,里面有苹果、梨和柠檬。我为苹果、梨和柠檬做了单独的布局。 如果选择了任何元素,我想获取该元素的布局。我尝试根据使用 inflate() 函数选择的布局将正确的布局放入 viewStub。
我创建了一个使用 ViewStub 的库并将其集成到我的项目中。当我运行应用程序时,我得到 java.lang.IllegalArgumentException: ViewStub must have
我最近发现了一个名为 ViewStub 的类,它可用于“延迟加载”布局资源。用法非常简单: 在我使用的布局文件中: 在我的代码中: var stub = this.FindViewById(Reso
我没有发现任何 bool 方法可以完成这项任务。我可以通过检查 viewStub 的 id 是否更改为指定为 inflatedid 的那个来做到这一点吗? Java代码: protected
我是 Android 开发的新手。 我从 https://developer.android.com/training/improving-layouts/loading-ondemand.html
几天前,我遇到了新的 Twitter API(版本 3.1.1),我试图复制我在 tweets 列表中看到的效果。 不幸的是我是新用户,我不能发布图片,所以我试图解释我在说什么 有推文列表( List
膨胀包含 fragment 的 View stub 时是否有任何问题。在 crashalytics 中我很少看到 Fatal Exception: android.view.InflateExcept
我是安卓新手,我一直在做一个项目,在我的新闻提要页面中,我试图包含一个模块化的提要 RecyclerView,它显示一个具有不同答案形式的问题,根据问题类型而变化。到目前为止,我的做法是使用 incl
我是一名优秀的程序员,十分优秀!