碎片和遗产

时间:2016-05-19 16:02:52

标签: java android

我正在尝试使用我正在创建的不同片段来更改主要活动的框架视图。

我的onNavigationItemSelected:

Option Explicit

Sub test()
    Dim myWB As Workbook
    Set myWB = Workbooks.Open("C:\Users\raystafarian\Downloads\Book3.xlsx")
    Dim yourWB As Workbook
    Set yourWB = Workbooks.Open("C:\Users\raystafarian\Downloads\Book2.xlsm")
    myWB.Sheets("Sheet1").Range("C1:C4").Value = yourWB.Sheets("Sheet1").Range("A1:A4").Value
End Sub

我的片段是:

import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.media.Image;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.util.Base64;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public boolean onNavigationItemSelected(MenuItem item) {
    Fragment fragment;
    FragmentManager fragmentManager = getFragmentManager();

    int id = item.getItemId();

    if (id == R.id.nav_camara) {
        // Handle the camera action
    } else if (id == R.id.nav_gallery) {

    } else if (id == R.id.nav_slideshow) {
         fragment  = new FragmentOne();

    } else if (id == R.id.nav_manage) {
         fragment = new FragmentTwo();
    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

但是我收到了一个错误:

  

错误:(116,26)错误:需要不兼容的类型:找到片段:
  FragmentOne

2 个答案:

答案 0 :(得分:0)

FragmentOne延长android.support.v4.app.Fragment。在MainActivity中,您使用getFragmentManager(),它与android.app.Fragment课程一起使用。您应该FragmentOne继承android.app.Fragment,或使用getSupportFragmentManager()内的MainActivity

答案 1 :(得分:0)

int id = item.getItemId();

if (id == R.id.nav_camara) {
    // Handle the camera action
} else if (id == R.id.nav_gallery) {

} else if (id == R.id.nav_slideshow) {
     fragment  = new FragmentOne();

} else if (id == R.id.nav_manage) {
     fragment = new FragmentOne();
} else if (id == R.id.nav_share) {

} else if (id == R.id.nav_send) {

}

在这里,你试图使用" FragmentTwo" ,但它不存在,所以更新上面显示的代码