Java 无法解析android studio中的getSupportFragmentManager()方法

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30503759/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 09:43:43  来源:igfitidea点击:

Cannot resolve method getSupportFragmentManager() in android studio

javaandroid

提问by appu

I created simple application in android studio. Im using NavigationDrawerFragment.. Im insert date picker coding but i got an error in getSupportFragmentManager() method

我在 android studio 中创建了简单的应用程序。我正在使用 NavigationDrawerFragment .. 我插入日期选择器编码,但在 getSupportFragmentManager() 方法中出现错误

Here my full Main Activity code:

这是我完整的主要活动代码:

package com.example.clive.mydatepickerapp;

import android.app.Activity;

import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.DrawerLayout;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.support.v4.app.FragmentActivity;


public class MainActivity extends Activity
        implements NavigationDrawerFragment.NavigationDrawerCallbacks {

    /**
     * Fragment managing the behaviors, interactions and presentation of the navigation drawer.
     */
    private NavigationDrawerFragment mNavigationDrawerFragment;

    /**
     * Used to store the last screen title. For use in {@link #restoreActionBar()}.
     */
    private CharSequence mTitle;

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



        mNavigationDrawerFragment = (NavigationDrawerFragment)
                getFragmentManager().findFragmentById(R.id.navigation_drawer);
        mTitle = getTitle();

        // Set up the drawer.
        mNavigationDrawerFragment.setUp(
                R.id.navigation_drawer,
                (DrawerLayout) findViewById(R.id.drawer_layout));
    }

    public void doDatePicker(View view) {
        DialogFragment myDatePickerFragment = new MyDatePickerFragment();
        myDatePickerFragment.show(getSupportFragmentManager(), "datePicker");
    }

    @Override
    public void onNavigationDrawerItemSelected(int position) {
        // update the main content by replacing fragments
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
                .commit();
    }

    public void onSectionAttached(int number) {
        switch (number) {
            case 1:
                mTitle = getString(R.string.title_section1);
                break;
            case 2:
                mTitle = getString(R.string.title_section2);
                break;
            case 3:
                mTitle = getString(R.string.title_section3);
                break;
        }
    }

    public void restoreActionBar() {
        ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
        actionBar.setDisplayShowTitleEnabled(true);
        actionBar.setTitle(mTitle);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        if (!mNavigationDrawerFragment.isDrawerOpen()) {
            // Only show items in the action bar relevant to this screen
            // if the drawer is not showing. Otherwise, let the drawer
            // decide what to show in the action bar.
            getMenuInflater().inflate(R.menu.main, menu);
            restoreActionBar();
            return true;
        }
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
        /**
         * The fragment argument representing the section number for this
         * fragment.
         */
        private static final String ARG_SECTION_NUMBER = "section_number";

        /**
         * Returns a new instance of this fragment for the given section
         * number.
         */
        public static PlaceholderFragment newInstance(int sectionNumber) {
            PlaceholderFragment fragment = new PlaceholderFragment();
            Bundle args = new Bundle();
            args.putInt(ARG_SECTION_NUMBER, sectionNumber);
            fragment.setArguments(args);
            return fragment;
        }

        public PlaceholderFragment() {
        }

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

        @Override
        public void onAttach(Activity activity) {
            super.onAttach(activity);
            ((MainActivity) activity).onSectionAttached(
                    getArguments().getInt(ARG_SECTION_NUMBER));
        }
    }

}

Please anyone help!!

请任何人帮忙!!

回答by Paritosh

This will work only if you are using support fragment class i.e. you have to

这仅在您使用支持片段类时才有效,即您必须

import android.support.v4.app.Fragment;

回答by hrskrs

instead of Activity:

而不是Activity

public class MainActivity extends Activity

extend FragmentActivity:

扩展FragmentActivity

public class MainActivity extends FragmentActivity

and make sure that you are importing SupportLibrary:

并确保您正在导入SupportLibrary

import android.support.v4.app.Fragment;

in order to use getSupportFragmentManager()

为了使用 getSupportFragmentManager()

回答by Anshul Gupta

I was having the same problem. Then I replaced getSupportFragmentManager()with getFragmentManager(), and it worked!

我遇到了同样的问题。然后我替换getSupportFragmentManager()getFragmentManager(),它奏效了!

I was using these 2 imports:

我正在使用这两个进口:

import android.support.v4.app.Fragment;
import android.app.FragmentTransaction;

And my MainActivityextended the Activityclass.

MainActivity延长了Activity课程。

回答by 1ambharath

Had these issues many times . What worked for me was :

有很多次这些问题。对我有用的是:

Simply extend the Main class with AppCompatActivity than the usual ACTIVITY

简单地使用 AppCompatActivity 扩展 Main 类而不是通常的 ACTIVITY

In short :

简而言之 :

replace Acivitywith AppCompatActivity

AppCompatActivity替换Activity

回答by nimi0112

Instead of public class MainActivity extends Activity

而不是公共类 MainActivity 扩展了 Activity

do

public class MainActivity extends AppCompatActivity it supports fragment manager

公共类 MainActivity 扩展了 AppCompatActivity 它支持片段管理器