• <i id='svu9C'><tr id='svu9C'><dt id='svu9C'><q id='svu9C'><span id='svu9C'><b id='svu9C'><form id='svu9C'><ins id='svu9C'></ins><ul id='svu9C'></ul><sub id='svu9C'></sub></form><legend id='svu9C'></legend><bdo id='svu9C'><pre id='svu9C'><center id='svu9C'></center></pre></bdo></b><th id='svu9C'></th></span></q></dt></tr></i><div id='svu9C'><tfoot id='svu9C'></tfoot><dl id='svu9C'><fieldset id='svu9C'></fieldset></dl></div>

    <small id='svu9C'></small><noframes id='svu9C'>

      1. <tfoot id='svu9C'></tfoot>

        • <bdo id='svu9C'></bdo><ul id='svu9C'></ul>
        <legend id='svu9C'><style id='svu9C'><dir id='svu9C'><q id='svu9C'></q></dir></style></legend>
      2. 无法解析方法'show(android.support.v4.app.FragmentMa

        时间:2023-09-29
        <legend id='mJRCO'><style id='mJRCO'><dir id='mJRCO'><q id='mJRCO'></q></dir></style></legend>
      3. <small id='mJRCO'></small><noframes id='mJRCO'>

          <tbody id='mJRCO'></tbody>
          <bdo id='mJRCO'></bdo><ul id='mJRCO'></ul>

          • <i id='mJRCO'><tr id='mJRCO'><dt id='mJRCO'><q id='mJRCO'><span id='mJRCO'><b id='mJRCO'><form id='mJRCO'><ins id='mJRCO'></ins><ul id='mJRCO'></ul><sub id='mJRCO'></sub></form><legend id='mJRCO'></legend><bdo id='mJRCO'><pre id='mJRCO'><center id='mJRCO'></center></pre></bdo></b><th id='mJRCO'></th></span></q></dt></tr></i><div id='mJRCO'><tfoot id='mJRCO'></tfoot><dl id='mJRCO'><fieldset id='mJRCO'></fieldset></dl></div>

                <tfoot id='mJRCO'></tfoot>

                  本文介绍了无法解析方法'show(android.support.v4.app.FragmentManager, java.lang.String)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  由于某种原因,当我尝试显示对话框时,我从 dialog.show(fm, DIALOG_DATE); 收到错误消息.说无法解析方法'show(android.support.v4.app.FragmentManager, java.lang.String)'

                  For some reason when I try to show a Dialog I get an error from dialog.show(fm, DIALOG_DATE); saying Cannot resolve method 'show(android.support.v4.app.FragmentManager, java.lang.String)'

                  为什么不能解析方法?

                  mDateButton.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View v) {
                              FragmentManager fm = getActivity().getSupportFragmentManager();
                              DatePickerFragment dialog = new DatePickerFragment();
                              dialog.show(fm, DIALOG_DATE);
                          }
                      });
                  

                  这是我班的其余部分:

                  package com.bignerdranch.android.criminalintent;
                  import android.os.Bundle;
                  import android.support.v4.app.Fragment;
                  import android.support.v4.app.FragmentManager;
                  import android.text.Editable; 
                  import android.text.TextWatcher;
                  import android.view.LayoutInflater;
                  import android.view.View;
                  import android.view.ViewGroup;
                  import android.widget.CheckBox;
                  import android.widget.Button;
                  import android.widget.CompoundButton;
                  import android.widget.CompoundButton.OnCheckedChangeListener;
                  import android.widget.EditText;
                  
                  import java.util.UUID;
                  
                  
                  public class CrimeFragment extends Fragment {
                  //key for the extra
                  public static final String EXTRA_CRIME_ID = "com.bignerdranch.android.criminalintent.crime_id";
                  
                  private static final String DIALOG_DATE = "date";
                  
                  //holds crime
                  private Crime mCrime;
                  
                  //widgets
                  private EditText mTitleField;
                  private Button mDateButton;
                  private CheckBox mSolvedCheckBox;
                  
                  //at start of build
                  @Override
                  public void onCreate(Bundle savedInstanceState) {
                      super.onCreate(savedInstanceState);
                      //get crime from crime class
                  
                      /*Intents
                      *There are two ways a fragment can access data in its activity's intent:
                      * an easy direct shortcut
                      * or a complex flexible implementation
                      * First try out the shortcut
                      * in the shortcut, CrimeFragment will access CrimeActivity's intent directly
                       */
                  
                      //retrieve the extra from CrimeActivity's intent and use it to fetch the Crime
                      //UUID crimeId = (UUID)getActivity().getIntent().getSerializableExtra   (EXTRA_CRIME_ID); //shortcut removed in chapter 10 and "should feel warm and fuzzy inside for maintaining CrimeFragments Independence"
                      //
                      UUID crimeId = (UUID)getArguments().getSerializable(EXTRA_CRIME_ID);
                      //CrimeLab.get() requires a context object, so CrimeFragment passes the CrimeActivity
                      mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
                  
                  }
                  
                  //Create the view and inflate the layout
                  @Override
                  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                           Bundle savedInstanceState) {
                      // Inflate the layout for crime Fragment
                      //pass false because view will be added in the activitys code
                      View v = inflater.inflate(R.layout.fragment_crime, container, false);
                  
                      //gets crime_title from fragment_crime.xml
                      mTitleField = (EditText)v.findViewById(R.id.crime_title);
                      mTitleField.setText(mCrime.getTitle());
                      mTitleField.addTextChangedListener(new TextWatcher() {
                          @Override
                          public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                              //not used
                          }
                  
                          @Override
                          public void onTextChanged(CharSequence s, int start, int before, int count) {
                                mCrime.setTitle(s.toString());
                          }
                  
                          @Override
                          public void afterTextChanged(Editable s) {
                              //also not used
                          }
                      });
                  
                  
                      //find date button from fragment_crime
                      mDateButton = (Button)v.findViewById(R.id.crime_date);
                      //set mDateButton text to current date and time
                      mDateButton.setText(mCrime.getDate().toString());
                      //disable button for now...enabled in chapter 12
                     // mDateButton.setEnabled(false);
                  
                  
                      mDateButton.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View v) {
                              FragmentManager fm = getActivity().getSupportFragmentManager();
                              DatePickerFragment dialog = new DatePickerFragment();
                              dialog.show(fm, DIALOG_DATE);
                          }
                      });
                  
                  
                  
                  
                      //find solved checkbox from fragment_crime
                      mSolvedCheckBox = (CheckBox)v.findViewById(R.id.crime_solved);
                      mSolvedCheckBox.setChecked(mCrime.isSolved());
                      //user clicks solved check box
                      mSolvedCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
                              //set the crime's solved property
                              mCrime.setSolved(isChecked);
                          }
                      });
                      //returns the view
                      return v;
                  }
                  
                  /*The downside to direct retrieval
                  *can not encapsulate fragment
                  * CrimeFragment is no longer a reusable building block because it expects that it will always be hosted by an activity whose intent defines extra named "EXTRA_CRIME_ID"
                  * CrimeFragment cannot be used with just any activity
                  *
                   */
                  
                  /*Fragment Arguments
                  *A better solution is to stash the mCrimeId someplace that belongs to CrimeFragment rather than keeping it in CrimeActivity's personal space
                  * this someplace can be an arguments bundle
                  * Every fragment instance can have a Bundle object attached to it
                  * bundle contains key value pairs that work just like the intent extras of an activity
                  * Pg. 195
                   */
                  
                  /*attaching arguments to a fragment
                  *Attaching args to frags must be done after the frag is created but before it is added to the activity
                  * To hit this window use a static class called newInstance()
                  * This method creates the fragment instance and bundles up and sets its arguments
                   */
                  //for attaching arguments to a fragment
                  public static CrimeFragment newInstance(UUID crimeId){
                      Bundle args = new Bundle();
                      args.putSerializable(EXTRA_CRIME_ID, crimeId);
                  
                      CrimeFragment fragment = new CrimeFragment();
                      fragment.setArguments(args);
                  
                      //pass UUID from extra
                      return fragment;
                  }
                  

                  }

                  推荐答案

                  要解决这个问题,如果你使用的是 android.app.DialogFragment,那么使用 getFragmentManager():

                  To solve this, if you are using android.app.DialogFragment, then use getFragmentManager():

                  mDateButton.setOnClickListener(new View.OnClickListener() {
                          public void onClick(View v) {
                              FragmentManager fm = getActivity().getFragmentManager();
                              DatePickerFragment dialog = new DatePickerFragment();
                              dialog.show(fm, DIALOG_DATE);
                          }
                      });
                  

                  使用 getSupportFragmentManager(),必须扩展自:android.support.v4.app.DialogFragment.

                  检查您的导入:

                  import android.support.v4.app.DialogFragment;
                  

                  这篇关于无法解析方法'show(android.support.v4.app.FragmentManager, java.lang.String)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在java Android中为自定义Dialog创建一个通用类 下一篇:致命异常:android.view.WindowManager$BadTokenException 无法

                  相关文章

                  最新文章

                1. <tfoot id='GfPuo'></tfoot>

                2. <legend id='GfPuo'><style id='GfPuo'><dir id='GfPuo'><q id='GfPuo'></q></dir></style></legend>

                    <small id='GfPuo'></small><noframes id='GfPuo'>

                      <bdo id='GfPuo'></bdo><ul id='GfPuo'></ul>
                  1. <i id='GfPuo'><tr id='GfPuo'><dt id='GfPuo'><q id='GfPuo'><span id='GfPuo'><b id='GfPuo'><form id='GfPuo'><ins id='GfPuo'></ins><ul id='GfPuo'></ul><sub id='GfPuo'></sub></form><legend id='GfPuo'></legend><bdo id='GfPuo'><pre id='GfPuo'><center id='GfPuo'></center></pre></bdo></b><th id='GfPuo'></th></span></q></dt></tr></i><div id='GfPuo'><tfoot id='GfPuo'></tfoot><dl id='GfPuo'><fieldset id='GfPuo'></fieldset></dl></div>