У меня есть следующий класс Fragment
:Как получить доступ к набору адаптеров в классе фрагментов?
public class TabFragment extends Fragment {
....
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_photos_tab, container, false);
TabelAdapter adapt = new TabelAdapter(getActivity().getApplicationContext(), R.layout.list_room_view, flowerList);
setListAdapter(adapt); // Not Working because class is not extended by ListActivity
return view;
}
TabelAdapter класс
public class TabelAdapter extends ArrayAdapter<Flower> {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (null == convertView) {
convertView = inflater.inflate(R.layout.list_flower_view, parent, false);
}
Picasso
.with(context)
.load("http://i.imgur.com/rFLNqWI.jpg")
.fit()
.into((ImageView) convertView);
return convertView;
}
list_flower_view.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Flowerimg"
android:layout_width="match_parent"
android:layout_height="200dp"/>
activity_home.xml
<RelativeLayout 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" tools:context=".MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@android:id/list"></ListView>
</RelativeLayout>
Когда я работал с activity
вместо fragment
, тогда весь процесс был очень простым. Я продляю MainActivity
класс с ListActivity
и добавьте setContentView(R.layout.activity_home);
в MainActivity.OnCreate()
. Я вижу список изображений в ListView
.
Вопрос
Как сделать setListAdapter
Fragment
использовать в классе? Я новичок в Android
. Любая помощь будет заметна :)
Edit-1
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
TabFragment photo = new TabFragment();
return photo; // Line (30,24)
} ......
}
Если я использую ListFragment
вместо Fragment
затем PagerAdapter
класса ОС метательные ошибку.
Error:(30, 24) error: incompatible types: TabFragment cannot be converted to Fragment
Edit-2
java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
@dieter_h Это ошибка компиляции. Просто вставил его –
Несовместимые типы. Существует 2 разных типа фрагментов, проверка импорта. 'import android.support.v4.app.ListFragment;' и \t 'import android.app.ListFragment' [one] (http://developer.android.com/reference/android/app/ListFragment.html) [два] (http://developer.android.com/reference/android/support/v4/app/ListFragment.html) –