Android 再次运行代码时出现异常 public类MainActivity扩展了FragmentActivity{ ImageView iview1; 布局参数; 碎片管理器fmgr; 碎片交易; 第一片段ff; 线性布局; ArrayList FArray; 整数计数器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 计数器=0; FArray=新的ArrayList(); iview1=(ImageView)findViewById(R.id.iview); setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图arg0){ //TODO自动生成的方法存根 showFF(); } }); 布局=(线性布局)findViewById(R.id.frag); fmgr=getSupportFragmentManager(); ftr=fmgr.beginTransaction(); params=(LayoutParams)layout.getLayoutParams(); //showF(); } 公开无效showFF(){ add(newfirstfragment()); ftr.add(R.id.frag,FArray.get(计数器)); if(true){//showing==false){ 参数重量=1; iview1.设置布局参数(参数); 布局。setLayoutParams(参数); 提交(); } 计数器++; } }
第一次正确执行此代码时,但当我再次单击iview1时,我得到一个Android 再次运行代码时出现异常 public类MainActivity扩展了FragmentActivity{ ImageView iview1; 布局参数; 碎片管理器fmgr; 碎片交易; 第一片段ff; 线性布局; ArrayList FArray; 整数计数器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 计数器=0; FArray=新的ArrayList(); iview1=(ImageView)findViewById(R.id.iview); setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图arg0){ //TODO自动生成的方法存根 showFF(); } }); 布局=(线性布局)findViewById(R.id.frag); fmgr=getSupportFragmentManager(); ftr=fmgr.beginTransaction(); params=(LayoutParams)layout.getLayoutParams(); //showF(); } 公开无效showFF(){ add(newfirstfragment()); ftr.add(R.id.frag,FArray.get(计数器)); if(true){//showing==false){ 参数重量=1; iview1.设置布局参数(参数); 布局。setLayoutParams(参数); 提交(); } 计数器++; } },android,exception,android-fragments,Android,Exception,Android Fragments,第一次正确执行此代码时,但当我再次单击iview1时,我得到一个异常->强制关闭。 为什么?代码中的一个问题是,每次要提交您的片段更改时,都需要调用beginTransaction 因此,尝试在函数中添加beginTransaction,如下所示: public class MainActivity extends FragmentActivity { ImageView iview1; LayoutParams params; FragmentManager fmgr
异常
->强制关闭
。
为什么?代码中的一个问题是,每次要
提交您的片段
更改时,都需要调用beginTransaction
因此,尝试在函数中添加beginTransaction
,如下所示:
public class MainActivity extends FragmentActivity {
ImageView iview1;
LayoutParams params;
FragmentManager fmgr;
FragmentTransaction ftr;
FirstFragment ff;
LinearLayout layout;
ArrayList<Fragment> FArray;
int counter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter=0;
FArray=new ArrayList<Fragment>();
iview1=(ImageView)findViewById(R.id.iview);
iview1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
showFF();
}
});
layout=(LinearLayout) findViewById(R.id.frag);
fmgr = getSupportFragmentManager();
ftr=fmgr.beginTransaction();
params=(LayoutParams) layout.getLayoutParams();
//showF();
}
public void showFF(){
FArray.add(new FirstFragment());
ftr.add(R.id.frag, FArray.get(counter));
if (true){//showing==false){
params.weight=1;
iview1.setLayoutParams(params);
layout.setLayoutParams(params);
ftr.commit();
}
counter++;
}
}
如果您仍然有异常,请发布您的Logcat
并尝试将其删除。请在此处添加日志消息
public void showFF(){
ftr=fmgr.beginTransaction();
FArray.add(new FirstFragment());
ftr.add(R.id.frag, FArray.get(counter));
if (true){//showing==false){
params.weight=1;
iview1.setLayoutParams(params);
layout.setLayoutParams(params);
ftr.commit();
}
counter++;
}