【少年の轨迹】关于安卓的Fragment报错的解决方法

最近在学习安卓的fragment组件,发现编译的时候一直报错

The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, PlaceholderFragment)

这是错误的代码:

<span style="font-size:18px;">package com.example.learnfragment;

import android.app.Activity;
import android.app.ActionBar;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Build;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		getFragmentManager().beginTransaction().add(R.id.container,  new PlaceholderFragment()).commit();
        }
}</span>
为什么会出现这个错误呢?修改并熊度了好久后发现引用错了包,这里应该引用support.v4.app.FragmentManager。这两个包看起来差不多但其实还是有一点差别的,少年就弄错了好几次。

这个support.v4.app.FragmentManager包可以支持的安卓版本最低为1.6,但是缺点是只能再程序中通过add或是replace的方式添加。并且使用这个包的类必须继承自FragmentActivity不然会无法使用getSupportFragmentManager()。

import.android.app.FragmentManager这个包是只支持安卓版本3.0以上的,但有着可以不光可以通过在程序中添加,还可以使用<fragment>标签这种作弊一样的方式添加的优点。

最后将贴出使用support.v4.app.FragmentManager改正的正确的代码。

<span style="font-size:14px;">package com.example.learnfragment;

import android.app.Activity;
import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Build;

public class MainActivity extends FragmentActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		
		FragmentManager manager = getSupportFragmentManager();
		PlaceholderFragment pl = new PlaceholderFragment();
		FragmentTransaction transction = getSupportFragmentManager().beginTransaction();
		
		transction.add(R.id.container, pl).commit();
		
		
	}</span><span style="font-size:24px;">
}</span>


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值