Как отобразить текст и картинку в новой активити

Рейтинг: 0Ответов: 1Опубликовано: 08.04.2023

При нажатии на картинку пустая активити, как отобразить картинку с текстом которая была

введите сюда описание изображения введите сюда описание изображения

public class MainActivity extends AppCompatActivity {

    private AdView mAdView;
    RecyclerView recview;
    public DatabaseReference mDataBase;
    private ArrayList animaList;
    myadapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().hide();
      

        recview=(RecyclerView)findViewById(R.id.recview);
        recview.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions<model> options =
                new FirebaseRecyclerOptions.Builder<model>()
                        .setQuery(FirebaseDatabase.getInstance().getReference().child("news"), model.class)
                        .build();

        adapter=new myadapter(options);
        recview.setAdapter(adapter);

    }

    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }
}

Адаптер

public class myadapter extends FirebaseRecyclerAdapter<model, myadapter.myviewholder>
{
  


    public myadapter(@NonNull FirebaseRecyclerOptions<model> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull final myviewholder holder, int position, @NonNull final model model) {
        holder.header.setText(model.getHeader());
        Glide.with(holder.image.getContext()).load(model.getImage()).into(holder.image);


        holder.image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(holder.image.getContext(),news_desc.class);

                intent.putExtra("img",model.getImage());
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                holder.image.getContext().startActivity(intent);
            }
        });
    }

    @NonNull
    @Override
    public myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.singlerow,parent,false);
        return new myviewholder(view);
    }

    class myviewholder extends RecyclerView.ViewHolder
    {
        ImageView image;
        TextView header, link;

        public myviewholder(@NonNull View itemView) {
            super(itemView);
            image=itemView.findViewById(R.id.img1);
            header=itemView.findViewById(R.id.header);

        }
    }
}

public class model
{
    String header, image, link;

    public model() {
    }

    public model(String header, String image, String link) {
        this.header = header;
        this.image = image;

    }

    public String getHeader() {
        return header;
    }

    public void setHeader(String header) {
        this.header = header;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }
}

новая активити

public class news_desc extends AppCompatActivity
{
    ImageView imageView;

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


imageView = findViewById(R.id.img1);

   int my_image = (getIntent().getIntExtra("img",0));
imageView.setImageResource(my_image);

    }
}

Ответы

▲ 0Принят
  1. Получайте в активити строку, не число:

    String imageUrl = getIntent().getStringExtra("img");
    
  2. Подключите либу для загрузки и отображения картинок в build.gradle(module app):

    implementation 'com.github.bumptech.glide:glide:4.15.1'
    
  3. Отобразите картинку из урлы либой:

    Glide.with(this).load(imageUrl ).into(imageView);