【问题标题】:How to Pass URL Image to another activity Android studio如何将 URL 图像传递给另一个活动 Android 工作室
【发布时间】:2019-12-29 22:26:41
【问题描述】:

我正在尝试将 URL 图片发送到我的应用程序中的另一个活动。它已成功添加到回收站列表的 circleview 中,但是当我按照意图实现它时,它不起作用。

我在 youtube 上尝试了所有教程,但都没有成功。

主要活动的意图:

private void showSelectedTeam(Team team) {
        Intent moveIntent = new Intent(MainActivity.this, HalamanDeskripsi.class);
        moveIntent.putExtra("restid",team.getPhoto());
        moveIntent.putExtra(HalamanDeskripsi.EXTRA_NAME,team.getName());
        moveIntent.putExtra(HalamanDeskripsi.EXTRA_DESC,team.getFrom());
        startActivity(moveIntent);
        }
}

在详细活动中收到:

ImageView iv = findViewById(R.id.gambar_desc);

        Bundle bundle = getIntent().getExtras();
        int res = bundle.getInt("restid");
        iv.setImageResource(res);

        TextView tvDataReceived = findViewById(R.id.tv_hd_nama);
        TextView tvDataReceived2 = findViewById(R.id.tv_hd_desc);

        String name = getIntent().getStringExtra(EXTRA_NAME);
        tvDataReceived.setText(name);

        String desc = getIntent().getStringExtra(EXTRA_DESC);
        tvDataReceived2.setText(desc);
    }

团队班:

public class Team {
    private String name;
    private String Description;
    private String photo;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFrom() {
        return Description;
    }

    public void setFrom(String from) {
        this.Description = from;
    }

    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }
}

来自 Array 类的数据:

public class DataTeam {
public static String[][] data = new String[][]{
        {"Arsenal",
                "Arsenal Football Club (dikenal pula sebagai Arsenal atau The Gunners) adalah klub sepak bola profesional Inggris yang berbasis di daerah Holloway, London. didirikan pada 1886 dengan nama Dial Square. ",
                "https://cdn.shopify.com/s/files/1/1888/7339/files/Arsenal_17_grande.jpg?v=1498047935"},
        {"Aston Villa",
                "Jenderal TNI Anumerta Ahmad Yani (juga dieja Achmad Yani; lahir di Purworejo, Jawa Tengah, 19 Juni 1922 – meninggal di Lubang Buaya, Jakarta, 1 Oktober 1965 pada umur 43 tahun) adalah .",
                "https://upload.wikimedia.org/wikipedia/en/thumb/f/f9/Aston_Villa_FC_crest_%282016%29.svg/1200px-Aston_Villa_FC_crest_%282016%29.svg.png"},
        {"Bournemouth",
                "Sutomo (lahir di Surabaya, Jawa Timur, 3 Oktober 1920 – meninggal di Padang Arafah, Arab Saudi, 7 Oktober 1981 pada umur 61 tahun)",
                "https://cdn.shopify.com/s/files/1/1888/7339/files/AFCB_08_grande.jpg?v=1498048525"}

};
public static ArrayList<Team> getListData(){
    ArrayList<Team> list = new ArrayList<>();
    for (String[] aData : data) {
        Team team = new Team();
        team.setName(aData[0]);
        team.setFrom(aData[1]);
        team.setPhoto(aData[2]);
        list.add(team);
    }
    return list;
}

当我在手机上运行时,详细的文本发送成功,但图片没有加载。请帮帮我

【问题讨论】:

  • 您传递了错误的密钥。应该是 restid 而不是 resid。
  • 哦,我的错,但我修复后仍然无法正常工作。
  • team.getPhoto() 究竟返回了什么?您在描述中引用了一个 URL,但您试图将该值用作资源 ID。
  • Team 是 java 类,我的 getter 和 setter 是在其中构造的。 getPhoto 是图片 URL 的数组。
  • edit你的问题发布Team类。

标签: java android android-intent android-recyclerview


【解决方案1】:

编辑:根据更新的信息 您似乎正在尝试从 url 加载图像,使用 Picasso 或 Glide 库更容易

更新 gradle

 implementation 'com.squareup.picasso:picasso:2.71828'

获取图片并加载

String res = bundle.getString("resid");
Picasso.get().load(res).into(iv);

【讨论】:

  • " ImageView 中的 setImageResource(int) 不能应用于 (java.lang.String)。有这个错误命令。
  • 感谢您的工作!它需要20-30秒,但加载成功!我把它设置为答案,如果你能建议我如何让它加载得更快,那就太好了。
  • 如果图像太大,请尝试调整它们的大小。参考stackoverflow.com/questions/37399131/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 2016-06-21
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多