Java XML文件未接收ListView的字符串[]

Java XML文件未接收ListView的字符串[],java,android,xml,android-listview,scroll,Java,Android,Xml,Android Listview,Scroll,我是android编程新手,正在学习Udacity的课程。他们让我使用ArrayAdapter和Listview创建一个可滚动的字符串列表,但是java类中的数据没有被传递。Android studio显示列表的模板,当我启动应用程序时,我会看到一个空白屏幕。下面是接收数据的XML代码,称为fragment_main.XML <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xml

我是android编程新手,正在学习Udacity的课程。他们让我使用ArrayAdapter和Listview创建一个可滚动的字符串列表,但是java类中的数据没有被传递。Android studio显示列表的模板,当我启动应用程序时,我会看到一个空白屏幕。下面是接收数据的XML代码,称为fragment_main.XML

<FrameLayout
    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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivityFragment"
    tools:showIn="@layout/activity_main">

    <ListView
        android:id="@+id/fragment_main_textview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>
activity_main.xml


不要将
fragment\u main.xml
传递给
ArrayAdapter
构造函数

替换

 data = new ArrayAdapter<String>(getActivity(),
        R.layout.fragment_main, R.id.fragment_main_textview, daysForecast);
data=newarrayadapter(getActivity(),
R.layout.fragment\u main,R.id.fragment\u main\u textview,daysforcast);

编辑:试试看,也许它能解决你的问题

 data = new ArrayAdapter<String>(getActivity(),R.id.fragment_main_textview,android.R.id.text1,daysForecast);
data=newarrayadapter(getActivity(),R.id.fragment\u main\u textview,android.R.id.text1,daysforcast);

或者访问

这里有一个问题:MainActivityFragment未连接到MainActivity.java,因此该片段始终不可见。这就是它应该看起来的样子:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    String[] daysForecast = {"Monday-Sunny-83/95", "Tuesday-Sunny-83/95",
            "Wednesday-Rainy-67/75",
            "Tuesday-Partly Cloudy-78/83",
            "Friday-Rainy-56/65", "Saturday-Dim-34/43",
            "Sunday-Awesome-70/78", "more data", "more data", "more data",
            "more data", "more data!!!!", "more data????", "end"
    };
    data = new ArrayAdapter<String>(getActivity(), R.layout.my_new_resource,
            R.id.forecast_view, daysForecast);
    ListView listView = (ListView) rootView.findViewById(
            R.id.fragment_main_textview);
    listView.setAdapter(data);
return rootView;
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.fragment_main,容器,错误);
字符串[]daysforcast={“星期一-Sunny-83/95”,“星期二-Sunny-83/95”,
“星期三-67/75”,
“星期二部分多云-78/83”,
“Friday-Rain-56/65”、“Saturday-Dim-34/43”,
“Sunday-Awesome-70/78”、“更多数据”、“更多数据”、“更多数据”,
“更多数据”,“更多数据!!!!”,“更多数据???”、“结束”
};
data=newarrayadapter(getActivity(),R.layout.my_new_资源,
R.id.forecast_view,daysForecast);
ListView ListView=(ListView)rootView.findViewById(
R.id.fragment\u main\u textview);
setAdapter(数据);
返回rootView;
}
此外,ArrayAdapter应该包含第三个XML文件,其语法如下所示

<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:id="@+id/forecast_view" />


我尝试了这个方法,但数组适配器似乎需要fragment\u main来创建数据。它需要所有这些参数扫描你所做的每件事?好的,我又发布了两个文件。希望这有帮助。非常感谢。对不起,这不起作用。实际上,我了解到我需要将片段添加到MainActivity.java的onCreate类中。我已经更新了该文件和activity_main.xml文件,但屏幕仍然显示为空白。我已经更新了问题中的代码以反映我的项目的当前状态。replace,View rootView=inflater.inflate(R.layout.fragment\u main,container);使用,视图rootView=充气机。充气(R.layout.fragment\u main,container,false);您是否可以将项目发送给我,所以我将与我一起调试。
 data = new ArrayAdapter<String>(getActivity(),R.id.fragment_main_textview,android.R.id.text1,daysForecast);
 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);
    String[] daysForecast = {"Monday-Sunny-83/95", "Tuesday-Sunny-83/95",
            "Wednesday-Rainy-67/75",
            "Tuesday-Partly Cloudy-78/83",
            "Friday-Rainy-56/65", "Saturday-Dim-34/43",
            "Sunday-Awesome-70/78", "more data", "more data", "more data",
            "more data", "more data!!!!", "more data????", "end"
    };
    data = new ArrayAdapter<String>(getActivity(), R.layout.my_new_resource,
            R.id.forecast_view, daysForecast);
    ListView listView = (ListView) rootView.findViewById(
            R.id.fragment_main_textview);
    listView.setAdapter(data);
return rootView;
}
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:id="@+id/forecast_view" />