0

MainActivity 内に次のコードがあります。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView=null;
            if (getArguments().getInt(ARG_SECTION_NUMBER)==1){
                rootView = inflater.inflate(R.layout.fragment_main, container, false);
                final Button newProdButton = (Button) rootView.findViewById(R.id.new_prod_button);
                newProdButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                     public void onClick(View v) {
                        Intent intent = new Intent (getActivity(), NewProdActivity.class);
                        startActivityForResult (intent, OK_NEW_PRODUCT);
                        }

                });

そしてその後:

public void onActivityResult(int requestCode, int resultCode, Intent data) {     
        super.onActivityResult(requestCode, resultCode, data); 
        if (requestCode==OK_NEW_PRODUCT){
            if (resultCode == Activity.RESULT_OK) { 
              Intent intent = new Intent (MainActivity.this, ProductActivity.class);
              startActivity(intent);

           }
        } 
      }

目的は、後者がすべての操作を正常に実行した場合に、最初のアクティビティの最後に 2 番目のアクティビティを開始することです。

ただし、最初のタスクを終了しても何も起こらず、アプリケーションはMainActivity. なんで?

4

4 に答える 4

0

setResult(RESULT_OK)最初のアクティビティを終了する前に行う必要があります

于 2014-09-02T15:15:07.490 に答える
0

あなたのコードはMainActivity、それがフラグメントであることを示唆しています。その場合は、次を使用します。

getActivity().startActivityForResult (intent, OK_NEW_PRODUCT);

それ以外の:

startActivityForResult (intent, OK_NEW_PRODUCT);
于 2014-09-02T15:37:37.837 に答える