繁体   English   中英

Android如何在活动中添加返回按钮以在片段活动中返回

[英]Android how to add back button in activity to return back in fragment activity

您好,我有一个简单的活动和片段,我想在活动操作栏上添加添加返回按钮并返回到片段。这是我的代码

public class Fragment2Jazz extends Fragment  {


    Button msgButton;
    Button callButton;
    Button internetButton;

    public Fragment2Jazz(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {


        View rootView = inflater.inflate(R.layout.jazz_fragment, container, false);

        msgButton = (Button) rootView.findViewById(R.id.btnjazz1);
        callButton= (Button) rootView.findViewById(R.id.btnjazz2);
        internetButton= (Button) rootView.findViewById(R.id.btnjazz3);

        msgButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(getActivity() , JazzMessage.class );

                getActivity().startActivity(intent);

            }
        });

        callButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(getActivity() , JazzCall.class );

                getActivity().startActivity(intent);

            }
        });

        internetButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(getActivity() , JazzInternet.class );

                getActivity().startActivity(intent);

            }
        });

        return rootView;
    }
}

活动

public class JazzCall extends Activity {

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

        ActionBar actionBar = getActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF9999")));

    }

}

如下更改您的JazzCall:

public class JazzCall extends Activity {

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

        ActionBar actionBar = getActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF9999")));

        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setDisplayShowHomeEnabled(true);

    }

    public boolean onOptionsItemSelected(MenuItem item) {

       switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
       }

       return super.onOptionsItemSelected(item);
   }
}

视图视图;

// public OnBackPressedListener onBackPressedListener;

@Override
public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle args) {

    view = inflater.inflate(R.layout.yourclassname, container, false);
    getActivity().getActionBar().hide();
    view.setFocusableInTouchMode(true);
    view.requestFocus();
    view.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.i(getTag(), "keyCode: " + keyCode);
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                getActivity().getActionBar().show();
                Log.i(getTag(), "onKey Back listener is working!!!");
                getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
                // String cameback="CameBack";
                Intent i = new Intent(getActivity(), fragment.class);// home page
                // i.putExtra("Comingback", cameback);
                startActivity(i);
                return true;
            } else {
                return false;
            }
        }
    });
    return view;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM