为android listView建立内置ID @android:id / list,创建AMBIGUITY

时间:2014-11-14 06:30:39

标签: android listview fragment

我的平板电脑应用程序的android布局有两个片段,两个片段都有Listview。我正在使用内置的id android:id="@android:id/list"两个片段。现在我是试图在我的活动java文件中引用它们,我很困惑,我将如何做到这一点。


重要要点:我正在参与我的活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_notifications);  
    notificationListView2=(ListView)findViewById(android.R.id.list);    //from first fragment
    notificationListView=(ListView)findViewById(android.R.id.list);//from second fragment

enter image description here


重要要点:我正在参与我的活动

2 个答案:

答案 0 :(得分:1)

对于Fragments,onCreateView是您的布局将被夸大的方法。 此inflater返回View对象,因此请在此视图对象上调用findViewById(android.R.id.list)

例如

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_layout_xml, container, false);
    rootView.findViewById(android.R.id.list);
    .....
    .... any other code ....
    .....
    return rootView;
}

这将确保正在访问正确的列表视图。

答案 1 :(得分:0)

在你添加的每个片段中都会调用onCreateView方法,在给定的方法中,你可以引用片段中的任何对象,也就是当你需要将引用存储到{时{1}}项目。

如果您需要以某种方式从您的活动中访问ListView项,请创建方法以检索您在ListView方法中指定的变量。

因此,在每个片段中,您将能够执行以下操作:

onCreateView