【问题标题】:trouble associating a listView id with findViewby() in android在android中将listView id与findViewby()相关联的麻烦
【发布时间】:2013-06-18 06:43:23
【问题描述】:

我正在尝试填充列表视图,并尝试在我的主视图中选择我的列表视图:

lv = (ListView) findViewById(R.layout.activity_main.xml.id);

我的 XML 文件夹结构是:

res>布局>activity_main.xml

我的main_activity.xml 文件如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true" >
    </ListView>

</RelativeLayout>

我认为这是我没有完全理解 xml id 值如何在 android 中工作的一个简单错误。

【问题讨论】:

  • 你是在扩展 ListActivity 还是活动?

标签: android xml android-listview android-xml


【解决方案1】:

更改以下内容

在 OnCreate 中

setContentView(R.layout.activity_main);  
lv = (ListView) findViewById(R.id.list);

在 xml 中更改列表视图

<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true" >
</ListView>  

【讨论】:

  • 太棒了,工作。 (需要等待一分钟才能接受正确答案。)但是现在它起作用了,为什么。我不太明白这里发生了什么。
  • 您正在扩展 listactivity,所以您所做的是正确的。如果你扩展 listActivity,你可以做 setListAdapter(youradapter) 你需要有这个android:id="@android:id/list"。我看到在链接/而不是lv = (ListView) findViewById(R.layout.activity_main.xml.id) 中发布您的代码后,您应该拥有ListView lv = getListView()
  • 保留默认的 android ID (android:id/list) 也很好。在这种情况下,您可以使用findViewById(android.R.id.list)
【解决方案2】:

尝试如下:

setContentView(R.layout.activity_main);

lv = (ListView) findViewById(R.id.ist);

并在 xml 中更改 listview 的 id,如下所示:

android:id="@+id/list"

【讨论】:

    【解决方案3】:

    在活动代码文件中试试这个(java)

    ListView lv = (ListView) findViewById(android.R.id.list);
    

    【讨论】:

      【解决方案4】:

      在 onCreate() 你会发现setContenctView(R.layout.activity_main); 如果没有那么你必须添加它。确保将其设置为您要在代码 java 文件中使用的 xml 活动。然后你可以很容易地通过使用来引用listView

      lv = (ListView) findViewById(R.id.list);
      

      另外,控件的xml中的id定义如下

       <ListView
          android:id="@+id/list"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentBottom="true"
          android:layout_alignParentRight="true" >
      </ListView>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        相关资源
        最近更新 更多