Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
Android 在相当于finish()的片段中检测后退按钮_Android_Android Fragments_Back Button - Fatal编程技术网

Android 在相当于finish()的片段中检测后退按钮

Android 在相当于finish()的片段中检测后退按钮,android,android-fragments,back-button,Android,Android Fragments,Back Button,我想问一下,当我试图返回到另一个片段时,我如何能够检测到 所以我有这个代码: fragmentManager.replace(R.id.fragment_searched_data_xml, fragment).addToBackStack(null).commit(); 让我回到那个片段。现在的问题是: 当我按下当前片段的后退按钮以便返回初始片段时,我可以检测到它吗?? public static class FragmentMainClass extends Fragment {

我想问一下,当我试图返回到另一个片段时,我如何能够检测到

所以我有这个代码:

fragmentManager.replace(R.id.fragment_searched_data_xml, fragment).addToBackStack(null).commit();
让我回到那个片段。现在的问题是:

当我按下当前片段的后退按钮以便返回初始片段时,我可以检测到它吗??

public static class FragmentMainClass extends Fragment {
    int i;
    public FragmentMainClass() {
    }
    public FragmentMainClass(int i) {
        this.i = i;
    }
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        final View rootView = inflater.inflate(
                R.layout.fragment_searched_data, container, false);
        TextView sn = (TextView) rootView.findViewById(R.id.stop_name);
        TextView sc = (TextView) rootView.findViewById(R.id.stop_code);

        String prefix = getArguments().getString("bussStopName");
        if (sn != null && sc != null) {
            if (prefix.contains("/")) {
                if (prefix.contains("/ ")) {
                    sn.setText(prefix.replace("\"", "").split("/ ")[0] + "\n" + prefix.replace("\"", "").split("/ ")[1]);
                    sc.setText(getArguments().getString("bussStopCode"));
                } else {
                    sn.setText(prefix.replace("\"", "").split("/")[0] + "\n" + prefix.replace("\"", "").split("/")[1]);
                    sc.setText(getArguments().getString("bussStopCode"));
                }
            } else {
                sn.setPadding(20, 40, 0, 0);
                sn.setText(prefix.replace("\"", ""));
                sc.setText(getArguments().getString("bussStopCode"));
            }
        }
        final LinearLayout child = (LinearLayout) rootView
                .findViewById(R.id.search_result_data_box);
        LayoutParams params = (LayoutParams) child.getLayoutParams();
        //child.setVisibility(View.GONE);

        // params.height = 0;
        widthListView = container.getWidth();
        rootView.setTranslationX(-container.getWidth());
        rootView.animate().setStartDelay(300).translationX(0)
                .withEndAction(new Runnable() {

                    @Override
                    public void run() {
                        conreq = new ConnnectionRequest("97", getArguments().getString("bussStopCode"));
                        //expand(child);
                        initializeResultList(rootView);
                        // rootView.setVisibility(View.INVISIBLE);
                    }
                });
        return rootView;
    }

    public static void expand(final View v) {
        final int targtetHeight = v.getMeasuredHeight();

        v.getLayoutParams().height = 0;
        v.setVisibility(View.VISIBLE);
        Animation a = new Animation() {
            @Override
            protected void applyTransformation(float interpolatedTime,
                    Transformation t) {
                v.getLayoutParams().height = interpolatedTime == 1 ? LayoutParams.WRAP_CONTENT
                        : (int) (targtetHeight * interpolatedTime);
                v.requestLayout();
            }

            @Override
            public boolean willChangeBounds() {
                return true;
            }
        };

        // 1dp/ms
        a.setDuration((int) (targtetHeight / v.getContext().getResources()
                .getDisplayMetrics().density));
        v.startAnimation(a);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {

    }

    public void initializeResultList(View v) {
        result_list = (ListView) v.findViewById(R.id.list_view_results);
        //(PullToRefreshListView) v.findViewById(R.id.list_view_results);;
        final ResultDataCustomAdapter customAdapter = new ResultDataCustomAdapter(getActivity(), R.layout.pull_refresh_list_item, conreq.getCollectedData().getBusRouteSetData());

        //prlv.prepareForRefresh();
        ((PullToRefreshListView) result_list).setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh() {
                // Do work to refresh the list here.
                new GetDataTask().execute();
            }
        });
        result_list.setAdapter(customAdapter);
        result_list.setVisibility(View.VISIBLE);
        result_list.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> av, final View view,
                     final int i, long i2) {

                view.animate().setDuration(500).translationX(widthListView).alpha(0).
                withEndAction(new Runnable() {
                    @Override
                    public void run() {
                        //setResult(Activity.RESULT_OK,new Intent().putExtra("bussStopCode", data.get(i).getStopCode()).putExtra("bussStopName", data.get(i).getStopName()));
                        ////int get 1
                        //data.remove(i);
                        int temporaryInteger = i;
                        //customAdapter.notifyDataSetChanged();
                        //view.setTranslationX(0);

                        Log.d("data",conreq.getCollectedData().getBusRouteSetData().get(temporaryInteger - 1).getRouteHeading());
                        Bundle bundle = new Bundle();
                        bundle.putString("busdestination", conreq.getCollectedData().getBusRouteSetData().get(temporaryInteger-1).getRouteHeading());
                        bundle.putString("busnumber", conreq.getCollectedData().getBusRouteSetData().get(temporaryInteger-1).getRouteNo());
                        Fragment fragment = new FragmentNextTripForStop();
                        fragment.setArguments(bundle);
                        FragmentTransaction fragmentManager = getFragmentManager().beginTransaction();
                        fragmentManager.setCustomAnimations(R.anim.left_right_anim_x_left,R.anim.left_right_anim_x_right);
                        fragmentManager.replace(R.id.fragment_searched_data_xml, fragment).addToBackStack(null).commit();
                        result_list.setVisibility(View.GONE);
                       // finish();
                        //overridePendingTransition(R.anim.right_left_anim_x_left,R.anim.right_left_anim_x_right);

                    }
                }); 
            }});

    }

    private class GetDataTask extends AsyncTask<Void, Void, String[]> {

        @Override
        protected String[] doInBackground(Void... params) {
            // Simulates a background job.
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                ;
            }
            return null;
        }

        @Override
        protected void onPostExecute(String[] result) {

            // Call onRefreshComplete when the list has been refreshed.
            ((PullToRefreshListView) result_list).onRefreshComplete();

            super.onPostExecute(result);
        }
    }

}
公共静态类FragmentMainClass扩展片段{
int i;
公共FragmentMainClass(){
}
公共FragmentMainClass(int i){
这个。i=i;
}
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图根视图=充气机。充气(
R.layout.fragment\u搜索的数据,容器,false);
TextView sn=(TextView)rootView.findViewById(R.id.stop\u name);
TextView sc=(TextView)rootView.findViewById(R.id.stop\u代码);
字符串前缀=getArguments().getString(“BussTopName”);
if(sn!=null&&sc!=null){
if(前缀.contains(“/”){
if(前缀.contains(“/”){
序号.setText(前缀.replace(“\”,”).split(“/”[0]+“\n”+前缀.replace(“\”,”).split(“/”[1]);
sc.setText(getArguments().getString(“BussTopCode”);
}否则{
序号.setText(前缀.replace(“\”,”).split(“/”[0]+“\n”+前缀.replace(“\”,”).split(“/”[1]);
sc.setText(getArguments().getString(“BussTopCode”);
}
}否则{
序列号设置填充(20,40,0,0);
序号setText(前缀.replace(“\”,”);
sc.setText(getArguments().getString(“BussTopCode”);
}
}
最终LinearLayout子项=(LinearLayout)根视图
.findViewById(R.id.search\u result\u data\u框);
LayoutParams params=(LayoutParams)子级。getLayoutParams();
//setVisibility(View.GONE);
//参数高度=0;
widthListView=container.getWidth();
setTranslationX(-container.getWidth());
rootView.animate().setStartDelay(300).translationX(0)
.withEndAction(新的可运行(){
@凌驾
公开募捐{
conreq=newconnectionrequest(“97”,getArguments().getString(“BussTopCode”));
//扩大(儿童);
初始化结果列表(rootView);
//setVisibility(View.INVISIBLE);
}
});
返回rootView;
}
公共静态空间展开(最终视图v){
最终int-targetHeight=v.getMeasuredHeight();
v、 getLayoutParams().height=0;
v、 设置可见性(View.VISIBLE);
动画a=新动画(){
@凌驾
受保护的无效应用转换(浮点插值时间,
变换(t){
v、 getLayoutParams().height=InterpolateTime==1?LayoutParams.WRAP_内容
:(int)(目标八*插值时间);
v、 requestLayout();
}
@凌驾
公共布尔值willChangeBounds(){
返回true;
}
};
//1dp/ms
a、 setDuration((int)(targetHeight/v.getContext().getResources()
.getDisplayMetrics().density));
v、 startAnimation(a);
}
ActivityResult上的公共void(int请求代码、int结果代码、意图数据)
{
}
公共无效初始值设定结果列表(视图v){
结果列表=(ListView)v.findViewById(R.id.list\u view\u结果);
//(PullToRefreshListView)v.findViewById(R.id.list_view_results);;
final ResultDataCustomAdapter customAdapter=新ResultDataCustomAdapter(getActivity(),R.layout.pull\u refresh\u list\u项,conreq.getCollectedData().getBusRouteSetData());
//prlv.prepareforefresh();
((PullToRefreshListView)结果列表)。setOnRefreshListener(新的OnRefreshListener(){
@凌驾
公共void onRefresh(){
//请务必刷新此处的列表。
新建GetDataTask().execute();
}
});
结果\u列表。设置适配器(自定义适配器);
结果列表设置可见性(视图可见);
result_list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共虚空onItemClick(AdapterView av、最终视图、,
最终整数i,长整数i2){
view.animate().setDuration(500).translationX(widthListView).alpha(0)。
withEndAction(新的可运行(){
@凌驾
公开募捐{
//setResult(Activity.RESULT_OK,new Intent().putExtra(“BussTopCode”,data.get(i).getStopCode()).putExtra(“BussTopName”,data.get(i).getStopName());
////整数得到1
//数据删除(i);
int临时整数=i;
//customAdapter.notifyDataSetChanged();
//view.setTranslationX(0);
Log.d(“数据”,conreq.getCollectedData().getBusRouteSetData().get(临时整数-1.getRouteHeading());
Bundle=新Bundle();
bundle.putString(“busdestination”,conreq.getCollectedData().getBusRouteSetData().get(临时整数-1.getRouteHeading());
bundle.putString(“busnumber”,conreq.getCollectedData().getBusRouteSetData().get(临时整数-1.getRouteNo());
Fragment Fragment=new FragmentNextTripForStop();
fragment.setArguments(bundle);
FragmentTransaction fragmentManager=getFragmentManager().beginTransaction();
fragmentManager.setCustomAnimations(R.anim.left\u right\u an
 getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.home_fragment, fragment)
            .addToBackStack(fragment.getTag())
            .commit();
 if (getSupportFragmentManager().getBackStackEntryCount() >= 0) {
     getSupportFragmentManager().popBackStack();
 }else{
  super.onBackPressed();
 }