我对以下代码有几个问题。如果你花时间回答它们,那就太棒了。
mForestAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item_forecast, R.id.list_item_forecast_textview, weekForecast);
。对象mForestAdapter有四个参数。我对前三个参数感到困惑。
list_item_forecast.xml
的布局部分下创建一个新的xml。它被用作第三个参数。我不确定为什么。为什么要创建这个新的xml?list_item_forecast.xml
内的textView的id。这个textView有什么作用?这个textView有什么影响?我尝试在这里更改xml代码,它只是清除预览中的所有内容。 ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast);
rootView引用了什么,为什么需要它?
代码如下:
package com.example.android.sunshine.app;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Arrays;
/**
* A placeholder fragment containing a simple view.
*/
public class MainActivityFragment extends Fragment {
public MainActivityFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
ArrayAdapter<String> mForestAdapter;
String[] forecastArray = {
"Today - Sunny - 88/63",
"Tomorrow - Foggy - 70/46",
"Wednesday - Cloudy - 72/63",
"Thurs - Rainy - 64/51",
"Fri - Foggy - 70/46",
"Sat - Sunny - 76/68",
"asdf",
"asdfqwer",
"qeprij",
"qpweirj,"
};
ArrayList<String> weekForecast = new ArrayList<String>(Arrays.asList(forecastArray));
mForestAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item_forecast, R.id.list_item_forecast_textview, weekForecast);
ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast);
listView.setAdapter(mForestAdapter);
return rootView;
}
答案 0 :(得分:0)
我不知道你对android开发了解多少。 “getActivity()”是Fragment的一个方法,因为ArrayAdapter构造函数需要传递“Context”而调用它。
我猜“list_item_forecast.xml”是每个列表元素的布局。这不是必须的,但如果这样,你可以从这个xml“膨胀”每个列表元素。
如果您对此无法理解,首先应使用Google的文档:
http://developer.android.com/guide/index.html
http://developer.android.com/guide/components/activities.html
http://developer.android.com/guide/components/fragments.html
然后阅读列表适配器及其功能。祝你好运
答案 1 :(得分:0)
如果您可以针对每个问题阅读Android参考,那将会很酷。对于ArrayAdapter,您可以参考here。
ArrayAdapter有6个构造函数,您可以根据自己的设计和要求进行选择。这与你的问题有关。
public ArrayAdapter(Context context,int resource,int textViewResourceId,T [] objects)
参数
上下文当前上下文。
资源包含在实例化视图时使用的布局的布局文件的资源ID。
textViewResourceId 要填充的布局资源中TextView的ID
对象要在ListView中表示的对象。