Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一旦手机';按下“返回”按钮_Java_Android_Android Fragments_Android Viewpager_Android Nested Fragment - Fatal编程技术网

Java 一旦手机';按下“返回”按钮

Java 一旦手机';按下“返回”按钮,java,android,android-fragments,android-viewpager,android-nested-fragment,Java,Android,Android Fragments,Android Viewpager,Android Nested Fragment,这是我的代码: Home.java import android.os.Bundle; import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.support.v4.app.Fragmen

这是我的代码:

Home.java

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Home extends Fragment {

    private TextView textView23;
    private ImageView addNewSalesInquery;
    private LinearLayout addNewSalesButton;
    private View view;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        view = inflater.inflate(R.layout.activity_home,container,false);

        //Intializing instance variables
        //addNewSalesInquery = (ImageView)findViewById(R.id.add_new_sales_inq);
        //textView23 = (TextView)findViewById(R.id.textView23);
        //textView23.setSelected(true);
         addNewSalesButton = (LinearLayout)view.findViewById(R.id.add_new_sales_btn);

        //Registering Listeners
        //addNewSalesInquery.setOnClickListener(new AddNewSalesInqury());
         addNewSalesButton.setOnClickListener(new AddNewSalesInqury());
        return view;

    }



    //Event Handler for Add New Sales
    private class AddNewSalesInqury implements OnClickListener
    { 

        @Override
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub

            FragmentTransaction ft = getFragmentManager().beginTransaction();

            ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
            ft.replace(R.id.fragment_container, new ViewPagerManager(), "fragment").addToBackStack("fragment");
            // Start the animated transition.
            ft.commit();


        }

    }

}
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TableRow;
import android.widget.TextView;

public class ViewPagerManager extends Fragment {

    private ImageView addNewSalesInqury;
    private RelativeLayout salesInquryMainLayout;
    private TableRow testEditSales; 
    private View view;

     private static final int ITEMS = 2;
        private static ViewPager viewPager;
        private MyAdapter pageAdapter;

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




    }

    private void intialize()
    {
        viewPager = (ViewPager)view.findViewById(R.id.pager);
        pageAdapter = new MyAdapter(getFragmentManager());
        viewPager.setAdapter(pageAdapter);
    }



    private  class MyAdapter extends FragmentPagerAdapter {

        public MyAdapter(FragmentManager fragmentManager) {
            super(fragmentManager);
        }

        @Override
        public int getCount() {
            return ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            if(position==0)
            {
                return new SalesInqury();
            }
            else
            {
                return new NewLead();
            }
        }
    }

    public static void setCurrentItem (int item, boolean smoothScroll) {
        viewPager.setCurrentItem(item, smoothScroll);
    }

    //This method will handle menu clicks
        public static void onMenuItemClicked(View view) {
            if(view.getId()==R.id.menu_add_inquiry)
            {
                setCurrentItem(2,true);
            }
        }

}
ViewPagerManager.java

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Home extends Fragment {

    private TextView textView23;
    private ImageView addNewSalesInquery;
    private LinearLayout addNewSalesButton;
    private View view;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        view = inflater.inflate(R.layout.activity_home,container,false);

        //Intializing instance variables
        //addNewSalesInquery = (ImageView)findViewById(R.id.add_new_sales_inq);
        //textView23 = (TextView)findViewById(R.id.textView23);
        //textView23.setSelected(true);
         addNewSalesButton = (LinearLayout)view.findViewById(R.id.add_new_sales_btn);

        //Registering Listeners
        //addNewSalesInquery.setOnClickListener(new AddNewSalesInqury());
         addNewSalesButton.setOnClickListener(new AddNewSalesInqury());
        return view;

    }



    //Event Handler for Add New Sales
    private class AddNewSalesInqury implements OnClickListener
    { 

        @Override
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub

            FragmentTransaction ft = getFragmentManager().beginTransaction();

            ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
            ft.replace(R.id.fragment_container, new ViewPagerManager(), "fragment").addToBackStack("fragment");
            // Start the animated transition.
            ft.commit();


        }

    }

}
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TableRow;
import android.widget.TextView;

public class ViewPagerManager extends Fragment {

    private ImageView addNewSalesInqury;
    private RelativeLayout salesInquryMainLayout;
    private TableRow testEditSales; 
    private View view;

     private static final int ITEMS = 2;
        private static ViewPager viewPager;
        private MyAdapter pageAdapter;

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




    }

    private void intialize()
    {
        viewPager = (ViewPager)view.findViewById(R.id.pager);
        pageAdapter = new MyAdapter(getFragmentManager());
        viewPager.setAdapter(pageAdapter);
    }



    private  class MyAdapter extends FragmentPagerAdapter {

        public MyAdapter(FragmentManager fragmentManager) {
            super(fragmentManager);
        }

        @Override
        public int getCount() {
            return ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            if(position==0)
            {
                return new SalesInqury();
            }
            else
            {
                return new NewLead();
            }
        }
    }

    public static void setCurrentItem (int item, boolean smoothScroll) {
        viewPager.setCurrentItem(item, smoothScroll);
    }

    //This method will handle menu clicks
        public static void onMenuItemClicked(View view) {
            if(view.getId()==R.id.menu_add_inquiry)
            {
                setCurrentItem(2,true);
            }
        }

}
活动领导和销售处理.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".LeadsAndSalesHandlingActivity"
    android:id="@+id/leadsAndSalesHandlingActivity" >

     <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
       </android.support.v4.view.ViewPager>

</RelativeLayout>

我使用它从
Home
导航到
ViewPagerManager
。在
ViewPagerManager
中,如果单击“上一步”按钮,我可以返回
主页
。现在,如果我试图通过单击应用程序上的虚拟按钮导航回
ViewPagerManager
,结果只会导航到一个100%空白的白色屏幕!这里怎么了

更新


我想我发现了问题所在。在活动\u leads\u和\u sales\u handling.xml中,有一个
查看页面
,它应该显示的是
查看页面
中的第一个
片段
。单击“上一步”按钮时,我认为此
ViewPager因某种原因停止工作或停止显示UI。

我也遇到了同样的问题,通过使用getChildFragmentManager()而不是getFragmentManager()解决了此问题


getChildFragmentManager()返回一个私有FragmentManager,用于在此片段中放置和管理片段

我也遇到了同样的问题。重写onResume()并重新初始化UI

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    initialize();
}

private void initialize(){
    btnOne= (Button) getActivity().findViewById(R.id.btnOne);
    btnTwo = (Button) getActivity().findViewById(R.id.btnTwo);      

    btnOne.setOnClickListener(this);
    btnTwo.setOnClickListener(this);    

    viewPager = (ViewPager) getActivity().findViewById(R.id.viewPager);
    viewPager.setAdapter(new ViewPagerAdapter(getActivity().getSupportFragmentManager()));  

}
@Override
public void onResume() {
    super.onResume();
    initialize();
}

请编辑您的问题:)。。。。。在Fragment2中,如果单击“上一步”按钮,我可以返回到Fragment2@TarekKanon:是的。谢谢