I’m a beginner at Android programming and I was wondering if you could help me out.
I have a ListFragment:
public class AdvertFrag extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor>
that I’m populating from a database using a loaderManager. This works fine and displays details of adverts, but I would like to do some calculations (work out distance via longitude and latitude) and then have the distance to the shops location displayed on each AdvertFrag.
I have looked into using setText() on a TextView in a fragment and have read you should allow the onCreateView method to be called first so a view is present. I have tried the below code:
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
view = inflater.inflate(R.layout.row, container, false);
if(view == null)
{
Log.i("TEST","null");
}
else
{
distance = (TextView) view.findViewById(R.id.distance);
distance.setText("the distance will go here");
}
return view;
}
But get the error that “Your content must have a ListView whose id attribute is android.R.id.list. Allowing the OnCreateView to just call:
return super.onCreateView(inflater, container, savedInstanceState);
works fine.
So my question is, what am I doing wrong? and how do I get setText working in a ListActivity? Or am i going at it in totally the wrong way?
Addition info if its useful:
My row.xml, just has the text views that are populated by the loader and the additional textview for the distance.
I have a fragmentActivity that has the fragment in its XML, like so:
<fragment
...
android:name="com.example.goclub.AdvertFrag"
.../>
Like user113215 said
onCreateView()of theListFragmentis not a place to change widgets inside the list items. You will have to create a customCursorAdapterfor that assuming that you are using one. You can find a nice tutorial about this here. Basically it extends aSimpleCursorAdapterand makes changes in thebindViewmethod.