【发布时间】:2018-08-12 05:58:27
【问题描述】:
我在一个片段中有一个复选框列表(我们称之为 FragmentA),我有一个包含 2 个片段(FragmentB 和 C)的活动。如果选中了一个复选框,我想在片段 C 中显示一条消息,表明该特定复选框已被选中。我需要帮助,因为我不知道如何将 (isChecked) 从 FragmentA 传递到 Fragment C。
FragmentA.java
CB16.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB16.getId());
if (CB16.isChecked()) {
score = score + finalScore;
} else if (!CB16.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB17.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB17.getId());
if (CB17.isChecked()) {
score = score + finalScore;
} else if (!CB17.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB18.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB18.getId());
if (CB18.isChecked()) {
score = score + finalScore;
} else if (!CB18.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB19.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB19.getId());
if (CB19.isChecked()) {
score = score + finalScore;
} else if (!CB19.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB20.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB20.getId());
if (CB20.isChecked()) {
score = score + finalScore;
} else if (!CB20.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB21.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB21.getId());
if (CB21.isChecked()) {
score = score + finalScore;
} else if (!CB21.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
CB22.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int finalScore = Values.getInstance().updateScore(CB22.getId());
if (CB22.isChecked()) {
score = score + finalScore;
} else if (!CB22.isChecked()) {
score = score - finalScore;
tv.setText(" " + score);
}
}
});
btnFragMale6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((MainActivityMale)getActivity()).setViewPager(6); }
});
return view;
}
分数不影响 FragmentC。
包含 Fragment B 和 C 的 Activity
FragmentB fragmentb = new FragmentB();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.constraintLayout1,fragmentB,fragmentB.getTag())
.commit();
FragmentC fragmentc = new FragmentC();
FragmentManager fragmentManagerrslt = getSupportFragmentManager();
fragmentManagerC.beginTransaction()
.replace(R.id.constraintLayout2,fragmentC,fragmentC.getTag())
.commit();
FragmentC 活动
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment_c, container, false);
Log.d(TAG, "onCreateView: started");
return view;
}
【问题讨论】:
标签: android