Code: Select all
public class MainActivity extends AppCompatActivity {
private DataHolder dataHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataHolder = DataHolder.getInstance();
if(dataHolder.isDataNull())
dataHolder.setData(new Data());
dataHolder.getData().setContext(this);
Button info_button = findViewById(R.id.button3);
info_button.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
dataHolder.getData().clearContext();
startActivity(intent);
finish();
});
}
}
< /code>
und < /p>
public class InfoActivity extends AppCompatActivity {
private DataHolder dataHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.info_ver);
dataHolder = DataHolder.getInstance();
dataHolder.getData().setContext(this);
Button back_button = findViewById(R.id.back);
back_button.setOnClickListener(v -> {
Intent intent = new Intent(InfoActivity.this, MainActivity.class);
dataHolder.getData().clearContext();
startActivity(intent);
finish();
});
}
}
< /code>
Auch ich denke, es könnte ein [url=viewtopic.php?t=20324]Problem[/url] mit dem Kontext geben, den ich in Daten verwende, um Toast später zu verwenden: < /p>
public class Data{
private String visibleExpression = "";
private String realExpression = "";
private String currentNumber = "0";
private final int MAX_SIZE = 20;
private Operation lastOperation = NONE;
private boolean isAlreadyNextNumber = true;
private boolean error = false;
private boolean isResultGiven = false;
transient WeakReference context;
public void setContext(Context context)
{
this.context = new WeakReference(context);
}
public void clearContext() {
if (context != null) {
context.clear();
}
context = null;
}
}