2014-02-28 24 views
2

我想用這個庫:https://code.google.com/p/barcodefraglibv2/如何在代碼中添加BarcodeFragment?

但我不知道如何在代碼中添加BarcodeFragment。 下面是一個示例:

public class MainActivity extends Activity implements IScanResultHandler{ 
     BarcodeFragment fragment; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      fragment = new BarcodeFragment(); 
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.add(R.id.sample, fragment).commit(); 
      fragment.setScanResultHandler(this); 

     } 
    } 

但是我在這裏得到了一個錯誤:

ft.add(R.id.sample, fragment).commit(); 

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

謝謝。

+0

嘗試通過getSupportFragmentManager () – Adnan

回答

1

這是一個導入問題。您的Activity不使用支持庫,因此FragmentTransaction.add預計類型爲android.app.FragmentFragment,而您提供BarcoreFragment,它延伸android.support.v4.app.Fragment;

您可以通過更改您的MainActivity解決這個問題,並使其實現FragmentActivity(見DOC here),然後固定導入並進行以下修改:

import android.app.FragmentTransaction; 
import android.app.Activity; 
MainActivity extends Activity 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 

成爲

import android.support.v4.app.FragmentTransaction; 
import android.support.v4.app.FragmentActivity; 
MainActivity extends FragmentActivity 
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
相關問題