从MainActivity类访问.xml文件

时间:2017-05-04 17:41:27

标签: android listview

我们有 MainActivity.class activity_main.xml firstlayout.xml。

firstlayout.xml 中有一个listview。我在 MainActivity.class ,我想访问我的listview.当我的listview位于另一个 .xml 文件中时,我该怎么做?

这样的东西
  

ListView lstview =(ListView)findViewById(R.id.lstview)

不起作用,因为我得到了

  

null引用错误

因为我的listview不在mainactivity.xml中。我也试过

  

的setContentView(R.layout.firstlayout)

但它也没有用。

How can I access a xml file which is NOT in main_activity.xml ? 

3 个答案:

答案 0 :(得分:2)

在mainActivity中使用ListView有两种可能的方法。

1)您只需将该布局( firstlayout.xml )包含在 activity_main.xml 文件中即可。

示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/app_bg"
android:gravity="center_horizontal">

<include layout="@layout/firstlayout"/>

<TextView android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/hello"
          android:padding="10dp" />

2)第二个选项是Layout Inflater。您只需将其他布局文件直接添加到您的java文件中即可。

 LayoutInflater inflater = LayoutInflater.from(getContext());
    inflater.inflate(R.layout.firstlayout, this);

答案 1 :(得分:1)

您可以使用布局inflater对视图进行充气:

getLayoutInflater().inflate(R.layout.firstlayout,
                           parentView, //the view that logically contains the list view, or just the base view in the main layout
                           false // false if you want to attach the list view to the parent, true otherwise
                           );

答案 2 :(得分:1)

你可以自己膨胀:

View firstLayout = getLayoutInflater().inflate(R.layout.firstlayout, null, false);
ListView listView = (ListView) firstLayout.findViewById(R.id.lstView);

只需确保firstlayout的{​​{1}}标识为ListView