class ArrayAdapter 的构造函数
constructor of class ArrayAdapter
我在 onCreateView() 中将其放入片段中:
ListView listView = (ListView) rootView.findViewById(R.id.listview);
ListAdapter listAdapter = new MyListAdapter();
listView.setAdapter(listAdapter);
我的列表适配器:
public class MyListAdapter extends ArrayAdapter {
/*public MyListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}*/
/* public MyListAdapter(Context context, int resource, List<ClipData.Item> items) {
super(context, resource, items);
}*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
Spinner spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getContext(),
R.array.country_arrays,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return row;
}
}
阵列适配器:
public class MyListAdapter extends ArrayAdapter implements AdapterView.OnItemSelectedListener{
Spinner spinner;
ListView listView;
/*public MyListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}*/
public MyListAdapter(Context context) {
super(context, R.layout.single_listview_item);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getContext(),
R.array.country_arrays,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return row;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Spinner spinner = null;
System.out.println("ciao");
listView.setSelection(position);
String selState = (String) listView.getSelectedItem();
Toast.makeText(
getContext(),
"Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
现在我的问题是:我必须在 class MyListAdapter
的 constructor
中写入什么?
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!
ArrayAdapter中有6个构造函数class。您必须根据您的要求实施其中任何一个。
更多详情,您可以关注这个link
每个扩展 class 必须至少有一个构造函数匹配父 class。所以你的 class 必须有一行构造函数并在上面调用 super,不需要自己的代码。
public MyListAdapter(Context context, int resource ) {
super(context, resource);
//your code
}
但是当您创建适配器时,您正在使用构造函数,因此您可以创建任何构造函数,重要的是在其中使用 super。
在构造函数中例如,您可以实现代码以将数据设置为从数据库中列出。
例如,您可以像这样创建构造函数:
public MyListAdapter(Context context) {
super(context, R.layout.row_view);
//your code
}
和
ListView listView = (ListView) rootView.findViewById(R.id.listview);
ListAdapter listAdapter = new MyListAdapter(getContext());
listView.setAdapter(listAdapter);
我在 onCreateView() 中将其放入片段中:
ListView listView = (ListView) rootView.findViewById(R.id.listview);
ListAdapter listAdapter = new MyListAdapter();
listView.setAdapter(listAdapter);
我的列表适配器:
public class MyListAdapter extends ArrayAdapter {
/*public MyListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}*/
/* public MyListAdapter(Context context, int resource, List<ClipData.Item> items) {
super(context, resource, items);
}*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
Spinner spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getContext(),
R.array.country_arrays,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return row;
}
}
阵列适配器:
public class MyListAdapter extends ArrayAdapter implements AdapterView.OnItemSelectedListener{
Spinner spinner;
ListView listView;
/*public MyListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}*/
public MyListAdapter(Context context) {
super(context, R.layout.single_listview_item);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
spinner = (Spinner) convertView.findViewById(R.id.simpleSpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getContext(),
R.array.country_arrays,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
return row;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//Spinner spinner = null;
System.out.println("ciao");
listView.setSelection(position);
String selState = (String) listView.getSelectedItem();
Toast.makeText(
getContext(),
"Clicked on Planet: " + selState + "", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
现在我的问题是:我必须在 class MyListAdapter
的 constructor
中写入什么?
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!
ArrayAdapter中有6个构造函数class。您必须根据您的要求实施其中任何一个。
更多详情,您可以关注这个link
每个扩展 class 必须至少有一个构造函数匹配父 class。所以你的 class 必须有一行构造函数并在上面调用 super,不需要自己的代码。
public MyListAdapter(Context context, int resource ) {
super(context, resource);
//your code
}
但是当您创建适配器时,您正在使用构造函数,因此您可以创建任何构造函数,重要的是在其中使用 super。
在构造函数中例如,您可以实现代码以将数据设置为从数据库中列出。
例如,您可以像这样创建构造函数:
public MyListAdapter(Context context) {
super(context, R.layout.row_view);
//your code
}
和
ListView listView = (ListView) rootView.findViewById(R.id.listview);
ListAdapter listAdapter = new MyListAdapter(getContext());
listView.setAdapter(listAdapter);