2016-01-05 2 views
-7

Я собираюсь добавить фрагмент в Activity. Но в нем есть следующие проблемы. Может быть, это несовместимо. Есть ли какое-нибудь решение?Почему Android Fragment отображается несовместимо?

media/arifhasnat/1ED0E5663F78E3C1/ 
AjkerDeal/CustomNavigation/MyApplication/ 
app/src/main/java/navigationdrawer/arifhasnat 
/com/androidcustomnavigationdrawer/ 
MainActivity.java:22: error: incompatible types: 
FragmentOne cannot be converted to Fragment 
fragmentTransaction.replace(R.id.frame_one, new FragmentOne()).commit(); 

Вот мой код: Его основной вид деятельности, где я назвал фрагмент класса

package navigationdrawer.arifhasnat.com.androidcustomnavigationdrawer; 

    import android.os.Bundle; 

    import android.support.v4.app.FragmentTransaction; 
    import android.support.v4.widget.DrawerLayout; 
    import android.support.v7.app.AppCompatActivity; 
    import android.widget.ListView; 


    public class MainActivity extends AppCompatActivity { 

     private String[] mNavigationDrawerItemTitles; 
     private DrawerLayout mDrawerLayout; 
     private ListView mDrawerList; 

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


      FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.frame_one, new FragmentOne()).commit(); 


     } 

    } 

Фрагмент:

package navigationdrawer.arifhasnat.com.androidcustomnavigationdrawer; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

/** 
* Created by arifhasnat on 1/5/16. 
*/ 
public class FragmentOne extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view= inflater.inflate(R.layout.fragment1,container,false); 
     return view; 


    } 
} 
+0

bacause'Fragment' класс из библиотеки Compat не полученный от класса «Фрагмент» от android SDK – Selvin

+0

yap.Спасибо. – arifhasnat

ответ

2

FragmentOne унаследован от android.app.Fragment, кажущиеся из import декларации в верхней части вашего файла класса:

import android.app.Fragment; 

С другой стороны, ваш FragmentTransaction от библиотеки поддержки:

import android.support.v4.app.FragmentTransaction; 

Два типа несовместимыми. Чтобы решить проблему, измените декларацию на импорт для FragmentOne, чтобы она читала import android.support.v4.app.Fragment;

0

Итак, вот ответ.

я есть заменить

import android.app.Fragment; 

с

import android.support.v4.app.Fragment; 

В классе: где я импортировали неправильно библиотеку пакетов

package navigationdrawer.arifhasnat.com.androidcustomnavigationdrawer; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

/** 
* Created by arifhasnat on 1/5/16. 
*/ 
public class FragmentOne extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view= inflater.inflate(R.layout.fragment1,container,false); 
     return view; 


    } 
} 
Смежные вопросы