我有一个活动,用户在其中输入要创建的项目数。 我创建了一个活动来输入项目的详细信息。 按下按钮后,开始输入详细信息的活动
对于一个以上的项目,该活动应一个接一个地运行,如果用户按下“后退”按钮,则会弹出一个弹出窗口,以确认取消该过程。
我用科特林语写过
我尝试使用for循环,但是所有活动都在后台运行,我应该为所有活动按下返回按钮
答案 0 :(得分:1)
您可以在活动中使用ViewPager
,并使用FragmentPagerAdapter
修改每个项目的片段列表。
后退堆栈将仅包含保存ViewPager
的片段,因此回显将关闭活动多面手。
主要活动:
public class MyActivity extends AppCompatActivity {
private ViewPager myViewPager;
private MyFragmentAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
adapter = new MyFragmentAdapter(getSupportFragmentManager());
adapter.setFragments("5");
myViewPager = findViewById(R.id.myViewPager);
myViewPager.setAdapter(adapter);
}
}
片段适配器:
class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
public MyFragmentAdapter(@NonNull FragmentManager fm) {
super(fm);
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
public void setFragments(String noOfFragments){
int intFragments = Integer.parseInt(noOfFragments);
for (int i = 0; i < intFragments; i++){
this.fragments.add(new Fragment());
}
}
}
活动布局:
<?xml version="1.0" encoding="utf-8"?>
<ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"enter code here>
<ViewPager
android:id="@+id/myViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ConstraintLayout>