单击Card View时如何打开WebView

How to open WebView when click on Card View

我试图在单击“卡片视图”时打开 WebView。 WebView 在 Main Activity 中实现。它不工作。我是编码新手。这是仪表板 Activity 。请告诉我如何解决这个问题。

public class DashBoardActivity extends MainActivity implements View.OnClickListener {

public CardView card1, card2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( activity_dashboard );

    card1 = findViewById( R.id.c1 );
    card2 = findViewById( R.id.c2 );



    card1.setOnClickListener( this );
    card2.setOnClickListener( this );
    
}


@Override
public void onClick(View v) {
    int id = v.getId();
    if (id == R.id.nav_home1) {
        web_view( "example1.com" );
    } else if (id == R.id.nav_home2) {
        web_view( "example2.com");
    }
}

}

您不需要扩展 Main Activity。

只需将 Intent Extras 中的 URL 传递到您的 Main Activity 并在那里启动它。

@Override
public void onClick(View v) {
    Intent intent = new Intent(this, MainActivity.class);   
    String example1 = "example1.com";
    String example2="example2.com";
    int id = v.getId();
    if (id == R.id.nav_home1) {
        intent.putExtra("URL", example1);
    } else if (id == R.id.nav_home2) {
        intent.putExtra("URL", example2);
    }
startActivity(intent);
}

然后在您的 onCreate MainActivity

中检索这些额外内容
private WebView wv1;
@Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      String url;
  
    if (savedInstanceState == null) {
    Bundle extras = getIntent().getExtras();

    if(extras == null) {
        url= null;
      } else {
        url= extras.getString("URL");
      }

    } else {

       url= (String) savedInstanceState.getSerializable("URL");
    
    }

    wv1=(WebView)findViewById(R.id.webView);
    wv1.setWebViewClient(new MyBrowser());

    wv1.getSettings().setLoadsImagesAutomatically(true);
    wv1.getSettings().setJavaScriptEnabled(true);
    wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    wv1.loadUrl(url);

}