android:立即启动活动,然后加载内容
2022-09-01 23:29:53
我已经研究了其他问题,博客和文档,似乎找不到满足我需求的正确答案。我有两个活动,A和B。当我启动活动B(从A)时,我希望它立即打开,然后在显示进度条的同时加载所有内容,而不是仅在加载内容时打开活动,使其看起来像冻结了两秒钟。一个例子是Youtube应用程序或Play商店。
这就是我得到的:
Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent goB = new intent(ActivityA.this, ActivityB.class);
startActivity(goB);
}
});
这是我正在加载的活动:
public class ActivityB extends AppCompatActivity implements OnDateSelectedListener, OnMonthChangedListener {
private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance();
@Bind(R.id.calendarView) MaterialCalendarView widget;
@Bind(R.id.textView) TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_c_calendar);
ButterKnife.bind(this);
widget.setOnDateChangedListener(this);
widget.setOnMonthChangedListener(this);
textView.setText(getSelectedDatesString());
}
@Override
public void onDateSelected(@NonNull MaterialCalendarView widget, @Nullable CalendarDay date, boolean selected) {
textView.setText(getSelectedDatesString());
}
private String getSelectedDatesString() {
CalendarDay date = widget.getSelectedDate();
if (date == null) {
return "No Selection";
}
return FORMATTER.format(date.getDate());
}
@Override
public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
}
}
我不是专家,所以欢迎详细的解释。
注意:我在活动中加载的是此日历:https://github.com/prolificinteractive/material-calendarview
问题:如何在后台加载?setContentView()
更新:我遵循了Hitesh Sahu的建议,现在我只有一个活动,每个片段都会替换一个容器,我假设在后台加载xml内容的方式对于片段和活动是相同的,但是如果有任何区别,请提及。