如何将Uri内容从一个类传递给另一个类

时间:2017-10-23 22:40:59

标签: android firebase

我有MainActivity.class我希望将我的Uri内容传递给另一个班级。

我的Uri是这个:

public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  // Get a URL to the uploaded content
  @SuppressWarnings("VisibleForTests") 
  Uri downloadUrl = taskSnapshot.getDownloadUrl();
}

我想在我的MainActivity2.class中获取此Uri,因此我可以获取URL字符串并将其粘贴到数据库引用以上传到firebase,因此我的用户上传了我的文件的Url,是我不知道如何传递这个字符串

protected Void doInBackground(Void... voids) {
  mDatabase.child(personID).child("URL").setValue(downloadURL);        
}

3 个答案:

答案 0 :(得分:1)

MainActivity.java

Intent intent = new Intent(this, MainActivity2.class);
intent.putExtra("downloadUrl", downloadUrl);
startActivity(intent);

MainActivity2.java

Uri downloadUrl = getIntent().getParcelableExtra("downloadUrl");

答案 1 :(得分:0)

您可以使用intent和Uri启动活动,如下所示:

Uri downloadUrl = taskSnapshot.getDownloadUrl();
Intent intent = new Intent(MainActivity.this, MainActivity2.class);

// put uri to intent
intent.setData(downloadUrl);
startActivity(intent);

然后你可以通过以下方式从MainActivity2中获取Uri:

@Override 
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  ...

  // Get the Uri from the intent
  Uri downloadUrl = getIntent().getData();

  // Then do something with the Uri.
}

答案 2 :(得分:0)

首先在MainActivity.class执行此操作:

Intent in = new Intent(MainActivity.this, NextActivity.class);
Bundle b = new Bundle();
b.putString("downloadUri", String.valueOf(downloadUri));
in.putExtras(b);
startActivity(in);

在你NextActivity.class执行此操作:

 Bundle extras = getIntent().getExtras();
 Uri downloadUri = Uri.parse(extras.getString(downloadUri));

NextActivity.class downloadUri中有{{1}}。