*Я хочу иметь возможность вызывать новый фрагмент, когда пользователь нажимает кнопку, которая находится на каждом элементе в списке, но при этом возникает исключение *
@Override
public void bindView(View convertView, Context context, Cursor cursor) {
final ViewHolder view_handler = new ViewHolder();
...
...
view_handler.update_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm = frag_context.getSupportFragmentManager();
AddProfFragment frag = new AddProfFragment();
FragmentTransaction transaction = fm.beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.replace(((ViewGroup) parent_view.getParent()).getId(), frag).addToBackStack(null).commit();
}
Ее, как я получаю parent_view и frag_context
public ProfessorCardAdapter(Context context, Cursor c, boolean autoRequery) {
super(context, c, autoRequery);
appContext = context;
dataSource = new ProfessorDataSource(context);
frag_context = (FragmentActivity) context;
this.c = c;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
// when the view will be created for first time,
// we need to tell the adapters, how each item will look
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View retView = inflater.from(context).inflate(R.layout.professors_list_item, parent, false);
parent_view = parent;
return retView;
}
Трассировки стека:
android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
at android.content.res.Resources.getResourceName(Resources.java:1773)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:919)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Я попробовал следующий метод, который дает мне другую ошибку «java.lang.UnsupportedOperationException: addView (View) не поддерживается в AdapterView» *
FragmentManager fm = frag_context.getSupportFragmentManager(); Фрагмент AddProfFragment = новый AddProfFragment(); Транзакция FragmentTransaction = fm.beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); transaction.replace(parent_view.getId(), frag).addToBackStack(null).commit();