'How to use WebView in a recyclerview with Firebase?

i been search for days how to implement webview (onclick) with a recyclerview and Firebase but i can't figure out how to do this, can you guys help?

my adapter code

 @Override
protected void onBindViewHolder(@NonNull myViewHolder holder, int position, @NonNull PTsModal model)
{

    holder.titulo.setText(model.getTitulo());
    holder.desc.setText(model.getDesc());
    Glide.with(holder.img1.getContext()).load(model.getImgurl())
            .placeholder(R.drawable.common_google_signin_btn_icon_dark)
            .error(R.drawable.common_google_signin_btn_icon_dark_focused)
            .into(holder.img1);
    holder.img1.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            Log.v("Program","You clicked the image");
            
        }
    });
}

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

class myViewHolder extends RecyclerView.ViewHolder
{

    ImageView img1;
    TextView titulo, desc;

    public myViewHolder(@NonNull View itemView)
    {
        super(itemView);
        img1 = (ImageView)itemView.findViewById(R.id.imagem_box);
        titulo = (TextView) itemView.findViewById(R.id.txt_titulo);
        desc = (TextView) itemView.findViewById(R.id.txt_desc);
        
    }
}

} modal (gets and sets)

public class PTsModal
{

PTsModal()
{

}
public PTsModal(String titulo, String desc, String imgurl, String url)
{
    this.titulo = titulo;
    this.desc = desc;
    this.imgurl = imgurl;
    this.url = url;
}

"main"

    public class Boticas_PT extends AppCompatActivity implements ValueEventListener
{

    RecyclerView recyclerView;
    ProgramAdapter  programadapter;
    RecyclerView.LayoutManager layoutmanager;
    DrawerLayout drawerLayout;
    Toolbar toolbar;
    NavigationView navigationView;
    //Indicar Titulo, descricao e imagem(mesmo tamanho)

    TextView txt_Menu;
    TextView txt_titulo_pontos_turisticos;
    WebView web_view;
    private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
    private DatabaseReference databaseReference = firebaseDatabase.getReference();
    private DatabaseReference txtMenu = databaseReference.child("txt_Menu");//Nome
    private DatabaseReference txtTituloPontosTuristicos = databaseReference.child("txt_titulo_pontos_turisticos");//Nome
    private DatabaseReference webview = databaseReference.child("url");//Nome
protected void onStart()
    {
        super.onStart();
        programadapter.startListening();
        txtMenu.addValueEventListener(this);
        txtTituloPontosTuristicos.addValueEventListener(this);

    }
    public void onDataChange(DataSnapshot dataSnapshot)
    {
        String message = dataSnapshot.getValue(String.class);
        web_view.loadUrl(message);
        if (dataSnapshot.getValue(String.class) != null) ;
        {
            String key = dataSnapshot.getKey();
            if (key.equals("txt_Menu"))
            {
                String menu = dataSnapshot.getValue(String.class);
                txt_Menu.setText(menu);
            }
            if (key.equals("txt_titulo_pontos_turisticos"))
            {
                String turismo = dataSnapshot.getValue(String.class);
                txt_titulo_pontos_turisticos.setText(turismo);
            }
        }
    }
    public void onCancelled(DatabaseError error)
    {

    }
    @Override
    protected void  onStop()
    {
        super.onStop();
        programadapter.stopListening();
        txtMenu.addValueEventListener(this);
        txtTituloPontosTuristicos.addValueEventListener(this);

    }

I can fetch the img and txtview from the database, but now when i click on the image i want to open a website (url) in my app so i search and i find the webview but can't make it work with recyclerview and firebase together.



Solution 1:[1]

onClick

        @Override
        public void onClick(View view)
        {
            Log.v("Program","You clicked the image");
            Context context = view.getContext();
            Intent intent = new Intent(context, Webview.class);
            intent.putExtra("url",model.getUrl());
            context.startActivity(intent);

        }

Creat a new class(with layout) add in layout the webview

webview.class

public class Webview extends AppCompatActivity
{
WebView webview;
TextView txt_geturl;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_webview);
    txt_geturl = (TextView) findViewById(R.id.txt_geturl);
    Intent intent = getIntent();
    String s1 = intent.getStringExtra("url");
    txt_geturl.setText(s1);
    webview = (WebView) findViewById(R.id.webview);

    webview.loadUrl(s1);
}

}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Drakan x