Android Custom Adapter İçerisinde Fragment Sorunu
-
Arkadaşlar merhaba, işin içinden çıkamadım.
Özetle şöyle anlatayım. Kategorileri yüklediğim bir custom adapter mevcut bu çalışıyor.
public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = layoutInflater.inflate(R.layout.video_kategorileri_item, null, true); } final video_kategorileri_json entity = getItem(position); final String strVideo_Kategori_ID = entity.getVideo_kategori_ID(); final String strKategori = entity.getKategori(); final String strOzet = entity.getOzet(); String strArkaplan_Renk_Kodu = entity.getArkaplan_renk_kodu(); final String strMeta_Ozet = entity.getMeta_ozet(); final String strToplam_Video = entity.getToplam_video(); final String strResim_Orta = entity.getResim_orta(); FrameLayout flKatman = (FrameLayout) convertView.findViewById(R.id.flKatman); flKatman.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fm = ((FragmentActivity)context).getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); videolar_activity fragment = new videolar_activity(); ft.add(R.id.llKapsul, fragment, "tagVideolarFragment"); ft.commit(); } }); return convertView; }
onClick olayında fragment oluşturup diğer fragmente geçiş yapmak istiyorum fakat orası hiç işlemiyorFrameLayout flKatman = (FrameLayout) convertView.findViewById(R.id.flKatman); flKatman.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TastyToast.makeText(getContext(), strVideo_Kategori_ID + " - " + strKategori, TastyToast.LENGTH_LONG, TastyToast.SUCCESS);; } });
Şeklinde yaptığımda ise Toast ile ekrana değerleri uyarı şeklinde veriyor. Fakat fragment oluşturmuyor. Umarım anlatabilmişimdir. Şimdiden teşekkürler.
-
Hocam FragmentManager sınıfını onClick metodu içinde değil de activite veya fragment içinde tanımlayıp başlangıç değeri olarak gönderirsen sorun yaşamayacağını düşünüyorum.
public class CustomAdaptor extends ArrayAdapter<Item>{ Context mContext; FragmentManager mFragmentManager; public CustomAdaptor(Context context, ArrayList<Item> kullaniciList, FragmentManager fragmentManager) { super(context, 0, kullaniciList); mContext = context; mFragmentManager = fragmentManager; } ...... } public class MainActivity extends AppCompatActivity { ArrayList<Item> kullaniciList; ListView listView; private static CustomAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { .... FragmentManager fm = ((FragmentActivity)context).getSupportFragmentManager(); adapter= new CustomAdaptor(getApplicationContext(),kullaniciList,fm); //conten, liste ve fragmentManager başlangıç olarak gönderildi. listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { .... } }); } ....... }
-
Çalışmıyordan kasıt hata mı veriyor abi ? Kodda ben absürt bir durum göremedim. Birde getView methodu RecyclerView de mi çalışıyor yokca BaseAdapter demi ? Hani Class'ı Extend ettin ?
Birde tastToast baya hoşmuş :) Kaptım