0
Кто-то знает, как SimpleCursorAdapter получает информацию о базе данных без взаимодействия с контент-провайдером? Я искал в документах, но я еще не понялAndroid SimpleCursorAdapter flow
Я делаю курс Udacity для изучения Android, и я использую этот фрагмент, но я не могу понять поток.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mForecastAdapter = new SimpleCursorAdapter(
getActivity(),
R.layout.list_item_forecast,
null,
// the column names to use to fill the textviews
new String[]{WeatherContract.WeatherEntry.COLUMN_DATETEXT,
WeatherContract.WeatherEntry.COLUMN_SHORT_DESC,
WeatherContract.WeatherEntry.COLUMN_MAX_TEMP,
WeatherContract.WeatherEntry.COLUMN_MIN_TEMP
},
// the textviews to fill with the data pulled from the columns above
new int[]{R.id.list_item_date_textview,
R.id.list_item_forecast_textview,
R.id.list_item_high_textview,
R.id.list_item_low_textview
},
0
);
mForecastAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder(){
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
boolean isMetric = FormatServices.isMetric(getActivity());
switch (columnIndex) {
case COL_WEATHER_MAX_TEMP:
case COL_WEATHER_MIN_TEMP: {
// we have to do some formatting and possibly a conversion
((TextView) view).setText(FormatServices.formatTemperature(
cursor.getDouble(columnIndex), isMetric));
return true;
}
case COL_WEATHER_DATE: {
String dateString = cursor.getString(columnIndex);
TextView dateView = (TextView) view;
dateView.setText(FormatServices.formatDate(dateString));
return true;
}
}
return false;
}
});
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
final ListView listView = (ListView) rootView.findViewById(R.id.listview_forecast);
listView.setAdapter(mForecastAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
/*String forecast = mForecastAdapter.getItem(position);
Toast.makeText(getActivity(), forecast, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getActivity(), DetailActivity.class)
.putExtra(Intent.EXTRA_TEXT, forecast);
startActivity(intent);*/
}
});
return rootView;
}
Кто-то может помочь мне понять поток SimpleCursorAdapter?
Почему вы передаете нуль в '' 'SimpleCursorAdapter''' конструктор, где вы должны пропусканием' '' Cursor'''? –
@NathanWalters, я не знаю почему! Для этого я не понимаю поведение SimpleCursorAdaptar. Я просто использую пример курса Udacity для Android. Вы можете увидеть более полный https://github.com/bkawakami/Udacity-Sunshine/blob/master/app/src/main/java/com/sunshine/fragment/MainFragment.java –
Просто передайте ему курсор, указывающий на данные, которые вы хотите отобразить в списке. Знаете ли вы, что хотите получить курсор из запроса базы данных? –