首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ListView中的LinearLayout

ListView中的LinearLayout
EN

Stack Overflow用户
提问于 2011-07-28 22:14:39
回答 6查看 16.6K关注 0票数 1

所以我试着把一个有两个TextViews的LinearLayout放在一个ListView里面,但是我遇到了麻烦,程序总是崩溃。ListView将只有一个元素。我的线性布局的xml如下:

代码语言:javascript
运行
复制
<ListView>
<LinearLayout
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:drawablePadding="14dip"
    android:paddingLeft="15dip"
    android:paddingRight="15dip">
        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"/>
        <TextView 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</ListView>

如何在listview中实现此功能?当我试着把它放在列表视图中时,我在电话上收到一个错误,说对不起!应用程序意外停止。请再试一次。堆栈跟踪如下所示。

代码语言:javascript
运行
复制
I/dalvikvm( 1692): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
I/dalvikvm( 1692): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=56)
D/AndroidRuntime( 1692): Shutting down VM
W/dalvikvm( 1692): threadid=3: thread exiting with uncaught exception (group=0x4001b170)
E/AndroidRuntime( 1692): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 1692): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.acme.activeisclickable/com.acme.activeisclickable.ActiveIsClickable}: java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
E/AndroidRuntime( 1692):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
E/AndroidRuntime( 1692):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
E/AndroidRuntime( 1692):        at android.app.ActivityThread.access$2200(ActivityThread.java:119)
E/AndroidRuntime( 1692):        at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
E/AndroidRuntime( 1692):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1692):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1692):        at android.app.ActivityThread.main(ActivityThread.java:4363)
E/AndroidRuntime( 1692):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1692):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1692):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime( 1692):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime( 1692):        at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1692): Caused by: java.lang.RuntimeException: Binary XML file line #14: You must supply a layout_width attribute.
E/AndroidRuntime( 1692):        at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:438)
E/AndroidRuntime( 1692):        at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3463)
E/AndroidRuntime( 1692):        at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3543)
E/AndroidRuntime( 1692):        at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1265)
E/AndroidRuntime( 1692):        at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1191)
E/AndroidRuntime( 1692):        at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:45)
E/AndroidRuntime( 1692):        at android.view.LayoutInflater.rInflate(LayoutInflater.java:620)
E/AndroidRuntime( 1692):        at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime( 1692):        at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime( 1692):        at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime( 1692):        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
E/AndroidRuntime( 1692):        at android.app.Activity.setContentView(Activity.java:1622)
E/AndroidRuntime( 1692):        at com.acme.activeisclickable.ActiveIsClickable.onCreate(ActiveIsClickable.java:35)
E/AndroidRuntime( 1692):        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 1692):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
E/AndroidRuntime( 1692):        ... 11 more
I/Process ( 1275): Sending signal. PID: 1692 SIG: 3
I/dalvikvm( 1692): threadid=7: reacting to signal 3
I/dalvikvm( 1692): Wrote stack trace to '/data/anr/traces.txt'
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-28 22:37:33

我假设您正在尝试自定义列表项。您应该编写自己的自定义适配器来实现这一点。试试这个tutorial,或者你可以看看这些视频:

  1. Presenting your data in a ListView
  2. Transitioning to ListActivity
  3. Beautify your List: Get it working
  4. Beautify your List: Rigth way to do it

披露:我是上述视频的作者。

票数 7
EN

Stack Overflow用户

发布于 2011-07-28 22:34:11

老实说,这个错误让我的眼睛很难理解。但通常情况下,您应该能够创建一个包含一个子元素的listview。

我想说的是:

代码语言:javascript
运行
复制
<ListView>
 <LinLayout>
  <TextView/>
  <TextView/>
 </LinLayout>
</ListView>

这应该是可行的,因为ListView只允许一个子进程。但是你的LinearLayout可以有你想要的数量。如果有一个错误,它可能是你的布局充气。

票数 1
EN

Stack Overflow用户

发布于 2011-07-28 22:40:50

您的布局文件中有Listview not ListView (大V) ...

E/AndroidRuntime( 1662): Caused by: java.lang.ClassNotFoundException: android.view.Listview

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6860409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档