0

我浏览了所有其他相同/相似的问题:

Android:您的内容必须有一个 id 属性为 android.R.id.list 的 ListView

您的内容必须有一个 ID 属性为“android.R.id.list”的 ListView

没有任何帮助。

不同之处在于我的 Activity 没有扩展 ListActivitiy (在上述情况下这似乎是问题)。

我的活动扩展了 FragmentActivity (我不能真正将其更改为 Activity,因为我有依赖项)。

public class MainActivity extends FragmentActivity 

... 列表显示

<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:divider="#b5b5b5"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_selector" >
</ListView>

...片段视图。

<fragment
    android:id="@+id/contentFragment"
    android:name="com.landa.fragment.ContentFragment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/include1" />

我还尝试按照上述问题中的建议更改 ListView 的“id”格式 - Android 不同意该表示法。

内容片段扩展 ListFragment:

public class ContentFragment extends ListFragment {

我怎样才能解决这个问题?

4

1 回答 1

5

第一个问题:

android:id="@+id/list"

需要是

android:id="@android:id/list"

然后,当您想要访问 时ListView,如果您在 Activity 中工作并且您有对 Fragment 的引用,则可以通过这种方式进行操作:

ListView l = fragment.getListView();

或者

ListView l = (ListView) fragment.getView().findViewById (android.R.id.list);

如果你在片段中,调用getListView()就足够了。

也不要忘记,您可以Fragment -> Activity通过始终转换getActivity()YourActivity调用您的逻辑方法或通过创建一个接口来处理它来进行通信。

于 2013-02-08T03:41:25.300 回答