活动并从片段返回的活动结果

时间:2019-04-28 17:46:36

标签: java android

我正在开发和App,我需要将int数据从一个片段传递到Another Activity。问题在于它返回0或false。

首先,我启动ActivityForResult并放置捆绑包。 然后,我传递一个布尔值,它可以正常工作,但是当我尝试将int片段中的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

2 个答案:

答案 0 :(得分:0)

我不使用Java,但我会尽力帮助您。您可以使用import os from selenium import webdriver BASE_PATH = os.path.abspath(os.path.dirname(__file__)) # get script directory CHROME_DRIVER_PATH = os.path.join(BASE_PATH, 'chromedriver') # create chrome driver path driver = webdriver.Chrome(executable_path = CHROME_DRIVER_PATH) 与活动进行交流。 Create custom listener

下面的代码是一个“通用”代码,可帮助您了解接口的实现。

复制帖子中的代码:

Java interfaces

现在在您想要获得结果的活动中扩展您的界面。

public interface MyListener {   //Define an interface anywhere in your project.
   // you can define any parameter as per your requirement
   public void callback(View view, String result);
}

答案 1 :(得分:0)

最后,我明白了它的错。非常简单。 我只是在这里正确地输入了sintax。只需提出一个新的意图并传递参数即可。

 @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);

无论如何,谢谢大家的帮助:)