Access fragment from adapter
12,258
Solution 1
What I did to resolve this is:
Intent i = new Intent(v.getContext(), MainActivity.class);
i.putExtra("fragment_value", "2");
v.getContext().startActivity(i);
In main class I get the parameter as value and with a switch I set fragment in main which I am interested.
Solution 2
You would need to pass it in your Constructor. For Example:
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;
}
...
Author by
David
HTML, CSS, javascript, jquery, C#, java, php, android, all microsoft frameworks, android, grails, mvc, wcf, groovy, spring
Updated on June 04, 2022Comments
-
David almost 2 years
The idea is i have a listview where each item is a product, when I click in the item, I need to go to another Fragment from the click which is inside the adapter of the listview.
My adapter is:
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; } }
You have to asume all code is working.
How can I go to the product Fragment inside the adapter?
-
David almost 10 yearsAnd... How can i show the fragment in the click event?