请教各位大佬,我在某个Fragment里定义了以下代码:
DetailActivity = (DetailActivity) getActivity();
LayoutInflater factorys = LayoutInflater.from(DetailActivity);
View view= factorys.inflate(R.layout.activity_detail, null);
killswitch = (CheckBox) view.findViewById(R.id.killswitch);
inputTv = (EditText) root.findViewById(R.id.inputTv);
并且已经在DetailActivity以及View里定义和监听了这两个CheckBox、EditText
killswitch = (CheckBox) findViewById(R.id.killswitch);
inputTv = (EditText) findViewById(R.id.inputTv);
killswitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
inputTv.setText("1");
Log.e("kill:", "onCheckedChanged: 选中" );
}else{
inputTv.setText("0");
Log.e("kill:", "onCheckedChanged: 未选中");
}
}
});
在DetailActivity中,获取killswitch的状态和inputTv值完全正常
但是在某个Fragment里使用贴出的第一段代码,只可以获取到最初的这两个值,例如我view里默认CheckBox为false、inputTv为1(已试过去掉初始值),然CheckBox动态点击之后,Fragment里的获取inputTv、CheckBox仍然为初始值。
DetailActivity里为最新点击动态的赋值。(Fragment调用是通过其他按钮)
这个 Fragment 的 View 是新创建的跟 Activity 中的都不是同一个对象。