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
Cannot resolve method getSupportFragmentManager() in android studio
提问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 MainActivity
extended the Activity
class.
我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 它支持片段管理器