Привет, я новичок в Android, если кто-то может помочь мне решить эту проблему, это будет высоко ценится.Теперь я пытаюсь вернуться к предыдущему представлению или к корневому представлению. Кто-нибудь знает, как вернуться к предыдущему представлению из статического контекста (я не уверен, что статический контекст является правильным способом сказать, что вы можете поправить меня, еслиЯ не прав)?
Я уже пытался создать FragmentManager. Причина, по которой я его использую, заключается в том, что приложение, которое я пытаюсь создать, использует Fragment.
FragmentManager fragmentManager =
((FragmentActivity)mContext).getSupportFragmentManager();
fragmentManager.popBackStack();
`
public class SomeView1 extends View implements View.OnTouchListener {
public SomeView1(Context c) {
super(c);
mContext = c;
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
}
public SomeView1(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
public void foodPortionCal() {
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("Output");
builder.setMessage("Message here");
builder.setCancelable(true);
builder.setNegativeButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sqLiteHelper.insertDataFood(GlobalVariable.mealTypeF, String.format("%.2f", totalProteinPer) + '%', String.format("%.2f", totalGrainsPer) + '%', String.format("%.2f", totalVegetablePer) + '%', String.format("%.2f", totalFruitPer) + '%', String.format("%.2f", totalDairyPer) + '%', GlobalVariable.dataF);
Toast.makeText(mContext, "Added", Toast.LENGTH_SHORT).show();
//this is where I want to set the feature to remove the view/static context?
FragmentManager fragmentManager = ((FragmentActivity)mContext).getSupportFragmentManager();
fragmentManager.popBackStack();
dialog.dismiss();
}
});
builder.show();
}
}
//Before going the code will move to someview1 we will be in a fragment class called FoodFragment and this is how it look like
public class Food_Cal extends Fragment {
private void mealTypeSelection()
{
//this is how I call the come view activity
getActivity().setContentView(new SomeView1(view.getContext()));
}
}
//вот ссылка на то, как было построено это приложение Android: бесплатная обрезка изображения Единственное, что сильно отличается, и проблема, которая вызывает у меня то, что мое приложение использует фрагмент, а код, которого нет в ссылке
Результат, который нужно получить, будет либо переходить к следующему просмотру с фрагментом, либо полностью возвращаться к корневому просмотру с фрагментом.результат, который я получаю: приложение продолжает падать и не может вернуться к корневому представлению, а затем происходит сбой приложения. Это сообщение об ошибке, которое я получаю
2019-04-27 00:35:36.599 624-624/apd.bii.diabetesappv1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: apd.bii.diabetesappv1, PID: 624
java.lang.ClassCastException: android.view.ContextThemeWrapper cannot be cast to android.support.v4.app.FragmentActivity
at apd.bii.diabetesappv1.FoodCalculation.SomeView1$1.onClick(SomeView1.java:437)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:173)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6894)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:857)