Доступ к фрагменту из адаптера

Идея заключается в том, что у меня есть список, где каждый элемент является продуктом, когда я нажимаю элемент, мне нужно перейти к другому фрагменту из клика, который находится внутри адаптера списка.

Мой адаптер:

package info.android.adapter; import info.android.ProductFragment; import info.android.R; import java.util.ArrayList; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ProductOffersListAdapter extends BaseAdapter { private Context context; private ArrayList<info.android.model.ProductsOffers> navProOffers; public ProductOffersListAdapter(Context context, ArrayList<info.android.model.ProductsOffers> navProOffers) { this.context = context; this.navProOffers = navProOffers; } @Override public int getCount() { return navProOffers.size(); } @Override public info.android.model.ProductsOffers getItem(int position) { return navProOffers.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.fragment_row, null); } convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // I NEED CLALL HERE FRAGMENT_PRODUCT.XML } }); ImageView img = (ImageView) convertView.findViewById(R.id.image); TextView txtCodigo = (TextView) convertView.findViewById(R.id.txtCodigo); TextView txtCiudad = (TextView) convertView.findViewById(R.id.txtCiudad); TextView txtVF = (TextView) convertView.findViewById(R.id.txtVF); String sVF = Double.toString(getItem(position).ValorFinal) + "€"; txtVF.setText(sVF); txtCiudad.setText(getItem(position).ciudad); txtCodigo.setText(getItem(position).codigo); convertView.setTag(getItem(position).codigo); img.setImageBitmap(getItem(position).Imagen); return convertView; } } 

Вы должны использовать весь код.

Как я могу перейти к фрагменту продукта внутри адаптера?

Вам нужно будет передать его в свой конструктор. Например:

 public class ProductOffersListAdapter extends BaseAdapter { private Context context; private ArrayList<info.android.model.ProductsOffers> navProOffers; Fragment myFragment; public ProductOffersListAdapter(Context context, ArrayList<info.android.model.ProductsOffers> navProOffers, Fragment myFragment) { this.context = context; this.myFragment = myFragment; this.navProOffers = navProOffers; } ... 

Что я сделал, чтобы решить эту проблему:

 Intent i = new Intent(v.getContext(), MainActivity.class); i.putExtra("fragment_value", "2"); v.getContext().startActivity(i); 

В основном классе я получаю параметр как значение, а с помощью переключателя я устанавливаю фрагмент в основном, который мне интересен.

Intereting Posts