首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android studio中使用bundle将数据发送到下一个活动

如何在android studio中使用bundle将数据发送到下一个活动
EN

Stack Overflow用户
提问于 2022-05-27 06:29:26
回答 3查看 144关注 0票数 0

这是细节活动..。我使用意图putExtra将数据从这个活动发送到下一个活动。

代码语言:javascript
复制
public class Detail_Activity extends AppCompatActivity {

    ImageView ivImage2;
    TextView txtDescription, txtName, txtPrice;
    String key = "";
    String imageUrl = "";
    Button delete_Recipe, update_Recipe;

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

        ivImage2 = (ImageView)findViewById(R.id.ivImage2);
        txtDescription = (TextView) findViewById(R.id.txtDescription);
        txtName = (TextView) findViewById(R.id.txtName);
        txtPrice = (TextView) findViewById(R.id.txtPrice);
        delete_Recipe = (Button) findViewById(R.id.delete_Recipe);
        update_Recipe = (Button) findViewById(R.id.update_Recipe);

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

                startActivity(new Intent(Detail_Activity.this, Upload_Recipe.class)
                        .putExtra("recipeNameKey", txtName.getText().toString())
                        .putExtra("recipeDescriptionKey",  txtDescription.getText().toString())
                        .putExtra("recipePriceKey",  txtPrice.getText().toString())
                        .putExtra("oldimageUrl", imageUrl)
                        .putExtra("key",key)
             );
            }
        });

**这是更新活动..。在此活动中,数据不显示或不显示接收到的数据,而代码是正确的**

代码语言:javascript
复制
public class Update_Activity extends AppCompatActivity {

    ImageView update_Recipe_Image;
    EditText update_Recipe_Name, update_Recipe_Description, update_Recipe_Price;
    Button updatebutton;
    Uri uri;
    ActivityResultLauncher<String> mContent;
    String imageUrl;

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

        update_Recipe_Image = (ImageView) findViewById(R.id.update_Recipe_Image);
        update_Recipe_Name = (EditText) findViewById(R.id.update_Recipe_Name);
        update_Recipe_Description = (EditText) findViewById(R.id.update_Recipe_Description);
        update_Recipe_Price = (EditText) findViewById(R.id.update_Recipe_Price);
        updatebutton = (Button) findViewById(R.id.updatebutton);

        Bundle bundle = getIntent().getExtras();
        if (bundle != null){
            Glide.with(Update_Activity.this)
                    .load(bundle.getString("oldimageUrl"))
                    .into(update_Recipe_Image);
            update_Recipe_Name.setText(bundle.getString("recipeNameKey"));
            update_Recipe_Description.setText(bundle.getString("recipeDescriptionKey"));
            update_Recipe_Price.setText(bundle.getString("recipePriceKey"));

        }
    }
}

在logcat.中没有任何错误

EN

回答 3

Stack Overflow用户

发布于 2022-05-27 06:36:28

代码语言:javascript
复制
startActivity(new Intent(Detail_Activity.this, Upload_Recipe.class)
                        .putExtra("recipeNameKey", txtName.getText().toString())

尝试使用.putExtra创建意图,然后将其作为startActivity的参数。如果您想传递数据以更新活动,则需要给出该活动的目的地,如下所示:

代码语言:javascript
复制
Intent myIntent= new Intent(Detail_Activity.this, Update_Activity.class)
                        .putExtra("recipeNameKey", txtName.getText().toString())
startActivity(myIntent)
票数 1
EN

Stack Overflow用户

发布于 2022-05-27 06:47:20

您不是在包中传递数据,而是使用intent直接传递数据。因此,您可以在下一个屏幕中接收数据,如下所示:

代码语言:javascript
复制
 if (getIntent() != null){
            Glide.with(Update_Activity.this)
                    .load(getIntent().getStringExtra("oldimageUrl"))
                    .into(update_Recipe_Image);
            update_Recipe_Name.setText(getIntent().getStringExtra("recipeNameKey"));
            update_Recipe_Description.setText(getIntent().getStringExtra("recipeDescriptionKey"));
            update_Recipe_Price.setText(getIntent().getStringExtra("recipePriceKey"));

        }

只需在您的bundle.getString中用getIntent().getStringExtra替换Update_Activity

票数 0
EN

Stack Overflow用户

发布于 2022-05-27 07:19:19

注这里有3项活动。Detail_Actiivty。Upload_Recipe (它是活动吗?),Update_Activity。您应该使用目标类创建意图。

代码语言:javascript
复制
Intent intent = new Intent ( DetailActivity.this, Update_Activity.class) ....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72401325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档