Hi wanted to create a listview that when you click it, it will go to a fragment. I tried creating a CustomAdapter which extends to BaseAdapter but i'm having problems with fragment and getSupportFragmentManager() it says "Cannot resolve method "getSupportFragmentManager()"
this is my code for my CustomAdapter
public class CustomAdapter extends BaseAdapter {
Activity activity;
String [] result;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(MainActivity mainActivity, int[] prgmImages) {
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return imageId.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public class Holder
{
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.menu_list, null);
holder.img=(ImageView) rowView.findViewById(R.id.imageView1);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Fragment frag = new Fragment();
if (position == 0) {
} else if (position == 1) {
frag = new ServicesFrag();
} else if (position == 2) {
} else if (position == 3) {
} else if (position == 4) {
}
if (frag != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, frag).addToBackStack(null).commit();
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
// TODO Auto-generated method stub
Toast.makeText(context, "You Clicked " + position, Toast.LENGTH_LONG).show();
}
});
return rowView;
}
}
thank you for the help.
Try this,
ListView listView = (ListView)findViewById(R.id.listView);
CustomAdapter adapter = new CustomAdapter(activity, array);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
Fragment frag = new Fragment();
if (position == 0) {
} else if (position == 1) {
frag = new ServicesFrag();
} else if (position == 2) {
} else if (position == 3) {
} else if (position == 4) {
}
if (frag != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, frag).addToBackStack(null).commit();
}
});