首页 > 解决方案 > 无法从另一个活动传递值(仅传递空值)

问题描述

我试图将变量从一个活动传递到另一个活动。在主要活动中,我设法使用 Toast 消息回调这些值。

MainActivity.java

search = (Button) findViewById(R.id.search);
        search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View w) {
                subreg = spinner_subregion.getSelectedItem().toString();
                reg = spinner_region.getSelectedItem().toString();
                pettype = spinner_pet.getSelectedItem().toString();
                petnumber = spinner_num.getSelectedItem().toString();
                Intent intent = new Intent(MainActivity, Result.class);
                intent.putExtra("subregion", subreg);
                intent.putExtra("region", reg);
                intent.putExtra("petnum", petnumber);
                intent.putExtra("pet", pettype);
                startActivity(intent);

         
}
}

但是,当我将值传递给 Result.java 时,它只返回 null。我尝试寻找解决方案,但仍然不适合我。任何人都知道我该如何传递数据?

结果.java

Bundle extras = getIntent().getExtras();
        if (extras!=null){
            subreg = extras.getString("subreg");
            reg = extras.getString("reg");
            pettype = extras.getString("pettype");
            petnumber = extras.getString("petnumber");
        }

标签: javaandroidandroid-studio

解决方案


试试这个 MainActivity.java

Intent myIntent = new Intent(this, NewActivity.class);
 intent.putExtra("subregion", subreg);
 intent.putExtra("region", reg);
 intent.putExtra("petnum", petnumber);
 intent.putExtra("pet", pettype);
startActivity(myIntent)

结果.java

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
    
        Intent intent = getIntent();
if(intent ==null){
........
.......
}else{
       

    
        String subregion= intent.getStringExtra("subregion");
        String region= intent.getStringExtra("region");
        String petnum= intent.getStringExtra("petnum");
        String pet= intent.getStringExtra("pet");
}
    }

推荐阅读