在图像视图中使用字符串

时间:2019-03-06 07:14:56

标签: android android-recyclerview imageview picasso

(1)我正在使用recyleview从API提取图像,文本和音频文件。对于文本,我使用截击,对于图像使用毕加索,那么我将用于音频文件。

(2)在应用onclicklistener时获取图像和文本后,将信息传递给另一个活动。只能传递文本,不能传递图像。

要解决此问题我需要做什么?

这是适配器部分

viewHolder.textViewStory.setText(banglaItem.getStoryName());
viewHolder.textViewWritter.setText(banglaItem.getWritterName());

        Picasso.get().load(banglaItem.getStoryImage()).fit().into(viewHolder.imageView);

        viewHolder.linear.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context,AudioActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.putExtra("storyName",banglaItem.getStoryName());
                intent.putExtra("storyImage",banglaItem.getStoryImage());

                context.startActivity(intent);
            }
        });

这是新的活动部分

public class AudioActivity extends AppCompatActivity {

    TextView name;
    ImageView image;
    String nameStory;
    String imageStory;

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

        name = findViewById(R.id.audioName);
        image = findViewById(R.id.audioImage);

        nameStory = getIntent().getStringExtra("storyName");
        imageStory = getIntent().getStringExtra("storyImage");

        name.setText(nameStory);
        int resourceId = getResources().getIdentifier(imageStory,"drawable", getPackageName());
        image.setImageResource(resourceId);
    }
}

1 个答案:

答案 0 :(得分:0)

(1。)(如果您具有音频文件的完整网址),则可以使用android提供的媒体播放器类直接流式传输音频文件。

(2。)是您在下一个活动中传递storyImage,这是您从api获取的网址。所以您必须在下一个活动中找到相同的内容

   TextView name;
   ImageView image;
   String nameStory;
   String imageStory;

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

   name = findViewById(R.id.audioName);
   image = findViewById(R.id.audioImage);

   nameStory = getIntent().getStringExtra("storyName");
   imageStory = getIntent().getStringExtra("storyImage");

   name.setText(nameStory);
   Picasso.get().load(imageStory).fit().into(image);
   //here image story contain url that you sent through first activity. As picasso uses cache, it will load (already loaded image in first activity) very smoothly from it cache.
}