我正在创建一个警报应用程序,警报选项是一个片段活动。应该为每一个新的警报添加一个新的活动实例,我已经到了这一点,并且我能够正确地完成它,甚至通过在每个片段中定义onClickListeners来修改它们中的参数。但是现在我想引用我在片段的java类中创建的变量,我不知道怎么做,因为我只是添加了它们,我不知道它们的名称或其他什么。
在其中创建片段的新实例的活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarms);
final android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
Button button_newAlarm = (Button)findViewById(R.id.button_new_alarm);
button_newAlarm.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) { //CREATES A NEW ALARM
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
alarm_fragment alarmFragment = new alarm_fragment();
fragmentTransaction.add(R.id.alarmListContainer,alarmFragment);
fragmentTransaction.commit();
}
;
}
);
}我在片段类中修改的变量之一
public class alarm_fragment extends Fragment {
public boolean check_sunday = true;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_alarm_fragment, container, false);
final TextView button_check_sunday = (TextView) view.findViewById(R.id.check_sunday);
button_check_sunday.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
if (check_sunday) {
button_check_sunday.setTextColor(Color.BLACK);
check_sunday = false;
} else {
button_check_sunday.setTextColor(Color.WHITE);
check_sunday = true;
}
};
}
);发布于 2015-09-15 23:26:41
我意识到,与其一遍又一遍地添加相同的片段,我实际上必须创建一个新的片段,并且每次都添加它,以便于命名我创建的:
final AlarmFragment[] alarmFragment = new AlarmFragment[7];然后在OnClickListener(内部
if (alarmsAmount < 7) { // SETS THE MAX AMMOUNT OF ALARMS
alarmFragment[alarmsAmount] = new AlarmFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.alarmListContainer, alarmFragment[alarmsAmount]);
fragmentTransaction.commit();
alarmsAmount++;通过使用它,然后再使用alarmFragment[x].isCheckSunday(),您可以读取元素的变量并修改它们
我希望这能对面临同样问题的人有所帮助。
发布于 2015-09-14 03:57:49
我相信您指的是成员变量check_sunday。把它固定下来。
public static boolean check_sunday = true;顺便说一句,使用适当的Java命名约定。更容易理解。
将alarm_fragment改为AlarmFragment,将check_sunday更改为sCheckSunday (因为它现在是静态的),依此类推。
为此,您可以参考谷歌Java风格指南。
https://stackoverflow.com/questions/32556775
复制相似问题