java.lang.IllegalStateException: commit already called

来源:互联网 发布:centos 7双系统安装 编辑:程序博客网 时间:2024/06/05 06:24

logcat输出

原因:FragmentTransaction设置为了全局变量,只能commit一次

方法:

public class MainActivity extends FragmentActivity implements OnClickListener {    private TextView tvLock;    private TextView tvUnLock;    private UnlockFragment unlockFragment;    private LockFragment lockFragment;    **private FragmentTransaction fTransaction;**    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tvLock = (TextView) findViewById(R.id.tv_lock);        tvUnLock = (TextView) findViewById(R.id.tv_unlock);        tvLock.setOnClickListener(this);        tvUnLock.setOnClickListener(this);        unlockFragment = new UnlockFragment();        lockFragment = new LockFragment();        **FragmentManager fragmentManager = getSupportFragmentManager();        fTransaction = fragmentManager.beginTransaction();**    }    @Override    public void onClick(View arg0) {        // TODO Auto-generated method stub        switch (arg0.getId()) {        case R.id.tv_lock:            tvLock.setBackgroundResource(R.drawable.tab_left_pressed);            tvUnLock.setBackgroundResource(R.drawable.tab_right_default);            **fTransaction.replace(R.id.fl_content, unlockFragment).commit();**            break;        case R.id.tv_unlock:            tvLock.setBackgroundResource(R.drawable.tab_left_default);            tvUnLock.setBackgroundResource(R.drawable.tab_right_pressed);            **fTransaction.replace(R.id.fl_content, lockFragment).commit();**            break;        }    }}

改为:

public class MainActivity extends FragmentActivity implements OnClickListener {    private TextView tvLock;    private TextView tvUnLock;    private UnlockFragment unlockFragment;    private LockFragment lockFragment;    **private FragmentManager fragmentManager;**    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tvLock = (TextView) findViewById(R.id.tv_lock);        tvUnLock = (TextView) findViewById(R.id.tv_unlock);        tvLock.setOnClickListener(this);        tvUnLock.setOnClickListener(this);        unlockFragment = new UnlockFragment();        lockFragment = new LockFragment();        **fragmentManager = getSupportFragmentManager();**    }    @Override    public void onClick(View arg0) {        // TODO Auto-generated method stub        **FragmentTransaction fTransaction = fragmentManager.beginTransaction();**        switch (arg0.getId()) {        case R.id.tv_lock:            tvLock.setBackgroundResource(R.drawable.tab_left_pressed);            tvUnLock.setBackgroundResource(R.drawable.tab_right_default);            **fTransaction.replace(R.id.fl_content, unlockFragment).commit();**            break;        case R.id.tv_unlock:            tvLock.setBackgroundResource(R.drawable.tab_left_default);            tvUnLock.setBackgroundResource(R.drawable.tab_right_pressed);            **fTransaction.replace(R.id.fl_content, lockFragment).commit();**            break;        }    }}
0 0
原创粉丝点击