首页 > 解决方案 > 单击按钮时无法从资产文件夹中打开 HTML 文件

问题描述

单击按钮后,html 页面未打开。我需要在另一个活动中单击按钮时在 Web 视图中打开 html 页面。粘贴两个java文件:

先决条件.java:

public class Prerequisites extends AppCompatActivity implements View.OnClickListener{
    WebView wv;

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_prerequisites);


    }


    @Override
    public void onClick(View view) {
        if(view.getId()==R.id.bowls)
        {
            Intent intent = new Intent(this, bowls.class);
            Button btbowls=(Button)findViewById(R.id.bowls);

            startActivity(intent);
            finish();
        }
    }


}

碗.java:

public class bowls extends AppCompatActivity  {
    WebView wv;

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bowls);

        wv = (WebView) findViewById(R.id.bowlswebview);
        wv.loadUrl("file:///android_asset/bowls.html");
    }


    }

标签: android

解决方案


@Elackya

如果您在 activity_prerequisites 添加您的网络视图,那么下面的代码将起作用。

public class MainActivity extends AppCompatActivity {
public WebView wv;

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

    Button btn = findViewById(R.id.button2);

    final String webLink = getIntent().getStringExtra("weblink");
    wv = (WebView) findViewById(R.id.webView);
    wv.loadUrl(webLink);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(),MainActivity.class);
            intent.setAction("weblink");
            intent.putExtra("weblink", "file:///android_asset/hello.html");
            startActivity(intent);
        }
    });

}
}

如果您在另一个活动中添加您的网络视图,那么第二个活动的源代码如下所示

public class bowls extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    WebView ww = findViewById(R.id.webView2);
    Intent web = getIntent();
    String url = web.getStringExtra("weblink");
    ww.loadUrl(url);

}
}

您的主要活动类应该像 public class MainActivity extends AppCompatActivity {

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

    Button btn = findViewById(R.id.button2);
       btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(),bowls.class);
            intent.setAction("weblink");
            intent.putExtra("weblink", "file:///android_asset/hello.html");
            startActivity(intent);
        }
    });

}
}

并且 AndroidManifest.xml 应该包括活动碗

<activity android:name=".MainActivity">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>
<activity
   android:name=".bowls"
   android:label="@string/title_activity_main2"
   android:theme="@style/AppTheme.NoActionBar">
</activity>

推荐阅读