ListView项目布局错误

时间:2012-04-16 13:48:50

标签: android listview

我在列表视图项目中使用以下布局。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://scheme.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="10dip"
    android:textSize="18sp"
    android:minHeight="40sp"
    />

但是我在logcat java.lang.RuntimeException中收到错误...你必须提供layout_width参数。

我的main.xml是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget28"
    android:background="#ff000033"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="70px"
        android:layout_height="30px"
        android:paddingLeft="2px"
        android:paddingTop="2px"
        android:background="@drawable/ic_launcher"
     ></ImageView>

    <ListView
        android:id="@+id/myListView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>

这是我的活动onCreate code

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    context=this.getApplicationContext();
    this.setTitle("NP Headline News");

    myListView=(ListView)findViewById(R.id.myListView);
    myListView.setOnItemClickListener(new OnItemClickListener(){

            @Override
        public void onItemClick(AdapterView<?> arg0, View v, int index,long id) {
                // TODO Auto-generated method stub
                String urlAddress=urlAddresses[index];
                String urlCaption = urlsCaptions[index];
            }

    });

  int layoutId=R.layout.simple_list_item_1;
   // int layoutId=android.R.layout.simple_list_item_1;
    aa = new ArrayAdapter<String>(this,layoutId,this.urlsCaptions);

    myListView.setAdapter(aa);
}

我认为这与我的simple_list_item_1有关,因为如果我使用android.R.layout.simple_list_item_1那么每件事都可以正常

3 个答案:

答案 0 :(得分:2)

这是您的错误清除布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="10dip"
    android:textSize="18sp"
    android:minHeight="40sp"

    />

您能否将错误包含的代码与上面的代码区分开来。

我希望你们在代码的时候不要紧张和催促,这必然会导致你被阻塞和混淆。

对于这些类型的错误,您可以使用DDMS帮助调试自己。 因为代码非常简单易于查看。

关于之前答案的一些说法:

不需要在TextView文件内声明View或任何Layout的人。

它也是View,所以它可以独自坐在Canvas中。

问题不在于"fill_parent""match_parent"某事。

我想你现在也可能会紧张,因为我花了这么多时间来告诉你错误的原因。

我们走了,

错误是因为只是在以下行中,

xmlns:android="http://schemas.android.com/apk/res/android"

在上面一行中,您错误地输入了scheme而不是schemas

这是错误。

所以只有我提到过,如果你看一下带有时态的代码,你就可以轻松搞定。

xmlns表示命名空间,应该是正确的,以使android:前缀属性有价值。

希望您理解,答案对您有所帮助。

答案 1 :(得分:0)

您应该将TextView放在布局下,因为您使用的是独特的TextView,您可以添加LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
<TextView xmlns:android="http://scheme.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="10dip"
    android:textSize="18sp"
    android:minHeight="40sp"
    />
</LinearLayout>

答案 2 :(得分:0)

我猜问题来自不同的东西。

您正在进行自定义项目视图,但您使用标准的AdapterView。

对于标准的arrayAdapter,您需要实现预期的结构。

或者,您可以构建自己的ArrayAdapter并提供专用的getView

Android Custom Listview