【发布时间】:2014-02-27 10:48:45
【问题描述】:
简介
我有一个绘图活动,从调色板中选择颜色我打开一个DialogFragment。
QUID
第一次打开DialogFragment 时,我将bnColor 对象设置为实例,并为其赋予第一个按钮的值,因此,在调色板中,第一个按钮将显示为选中状态,这是我要绘制的颜色.
但是,如果我在调色板中选择另一种颜色,下次我再次进入调色板时,我希望这种新颜色显示为已选择。取而代之的是,总是选择第一种颜色。
我知道这是因为每次我输入DialogFragment 时,bnColor 对象都是空的,所以它总是获得第一个颜色的值。为了解决这个问题,我需要做一些事情,比如保存 bnColor 对象的最后一个状态,所以当我进入 dialogFragment 时,它会检查是否是第一次并且它为空,或者我之前输入过并且有一个先前的值已保存。
但我从来没有做过这样的事情,我不知道该怎么做。
这是 dialogFragment 上的相关代码:
private ImageButton bnColor;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view = inflater.inflate(R.layout.palette, null, false);
if (bnColor == null) {
LinearLayout drawLayout = (LinearLayout) view.findViewById(R.id.paint_colors);
bnColor = (ImageButton) drawLayout.getChildAt(0);
bnColor.setImageDrawable(getResources().getDrawable(R.drawable.button_pressed));
}
【问题讨论】:
标签: android layout android-dialogfragment savestate