簡體   English   中英

Activity 上的 Activity 結果並從片段返回

[英]Activity Result on Activity and returning from fragment

我正在開發和應用程序,我需要將 int 數據從片段傳遞到另一個活動。 問題在於它返回 0 或 false。

首先,我開始 ActivityForResult 放置一個 Bundle。 然后我傳遞一個布爾值,它工作正常,但是當我嘗試將 int 從片段放入包中並返回到 onActivityResult 時,它返回 0 或 false。

有人可以幫忙嗎? 我也嘗試過 putExtras 但仍然是錯誤的

 public void newcampeon(View view) {
        Intent i = new Intent(getApplicationContext(), Campeones.class);
        b = new Bundle();
        Boolean vengodraft = true;
        b.putBoolean("vengodraft",vengodraft);
        i.putExtras(b);
        startActivityForResult(i,01);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode,  Intent data) {
            int res = b.getInt("idcampeon");
           aban1.setImageResource(res);
            Toast.makeText(getApplicationContext(),String.valueOf(res),
                 Toast.LENGTH_SHORT).show();

    }

------ Fragment on Another Acivity

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_top_lane, container, false);
        b = getArguments();
        if(b!=null){
            Boolean vengodraft = b.getBoolean("vengodraft");
            if(vengodraft==true){
                final ImageView aatrox = v.findViewById(R.id.aatrox);
                aatrox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        int id = aatrox.getId();
                        getActivity().setResult(Activity.RESULT_OK);
                        b.putInt("idcampeon",id);
                        getActivity().finish();

                    }
                });
            }
        }
        return v;

它應該返回 Img 的當前 id

最后我明白了它的錯誤。 它非常簡單。 我只是把語法正確地放在這里。 只需創建一個新的意圖並傳遞參數即可。

 @Override
                    public void onClick(View v) {             
                        String nombrecampeon = String.valueOf(aatrox.getTag());
                        Intent i = new Intent();
                        i.putExtra("nombrecampeon",nombrecampeon);
                        getActivity().setResult(Activity.RESULT_OK,i);
                        getActivity().finish();
                    }
                });

在 ActivityResult 上

  String uri = "@drawable/"+data.getExtras().getString("nombrecampeon"); 
       int imageResource = getResources().getIdentifier(uri, null, getPackageName());
       Drawable res = getResources().getDrawable(imageResource);
       aban1.setImageDrawable(res);

無論如何,謝謝大家的幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM