Here is the Answer: I get an instance of the MainActivity through the constructor.
public MyCard(Context context, int innerLayout) {
super(context, innerLayout);
mActivity=((MainActivity)context);
init();
}
private void init() {
//Set a OnClickListener listener
setOnClickListener(new OnCardClickListener() {
@Override
public void onClick(Card card, View view) {
Toast.makeText(getContext(), "Click Listener card=", Toast.LENGTH_LONG).show();
baseFragment = new ElderCallStatusFragment();
mActivity.openFragment(baseFragment);
}
});
}
I called the method in the MainActivity to do Fragment Transaction:
public void openFragment(BaseFragment baseFragment){
if (baseFragment != null){
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_main, baseFragment);
ft.commit();
if (baseFragment.getTitleResourceId()>0)
mCurrentTitle = baseFragment.getTitleResourceId();
}
}
Then it works fine.