gpt4 book ai didi

android - 将 URL 和标题传递给 WebView

转载 作者:太空狗 更新时间:2023-10-29 16:36:48 27 4
gpt4 key购买 nike

我有一个包含项目 [google, yahoo, bing ...] 的 ListView 。通过单击每个项目,webview 必须加载相应的 URL。我的问题是我创建了一个 ListView ,其中包含项目,但我只需要一个类来加载所有 URL。因此,当我点击 google 时,webview 必须加载 google 网站,如果我按 yahoo,它必须在同一个 webview 中加载 yahoo 网站。

我想将点击项目的 URL 传递到下一个页面(webview)。

MainActivity.java

public class MainActivity extends Activity {

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

}

private void populateListView() {
String[] str={"Google","yahoo", "bing"};
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, R.layout.textview,str);
ListView list=(ListView)findViewById(R.id.listviewone);
adapter.notifyDataSetChanged();
list.setAdapter(adapter);


}
private void clickEvent() {
final ListView list=(ListView)findViewById(R.id.listviewone);

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
view.setSelected(true);
switch( position )
{
case 0: Intent newActivity0 = new Intent(MainActivity.this, Mywebpage.class);
startActivity(newActivity0);
break;

}
}

});
}

Mywebpage.java

public class Mywebpage extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.webviewpage);
WebView wbView = (WebView) findViewById(R.id.WebView);
wbView.getSettings().setJavaScriptEnabled(true);
wbView.loadUrl("http://www.google.com");
}
}

最佳答案

发送 titleurl 到 webview 类将额外的 Intent 传递给 webview 类,即将您的 switch case 重写为

Intent newActivity0 = new Intent(MainActivity.this, Mywebpage.class);
newActivity0.putExtra("title", str[position]);
switch (position) {
case 0:
newActivity0.putExtra("url", "http://www.google.com");
break;
case 1:
newActivity0.putExtra("url", "http://www.yahoo.com");
break;
case 2:
newActivity0.putExtra("url", "http://www.bing.com");
break;
}

startActivity(newActivity0);

并定义

 String[] str={"Google","yahoo", "bing"};

作为类变量而不是 populateListView 方法。

并在您的 Mywebpage 类中获取 intent as

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webviewpage);

Bundle extras = getIntent().getExtras();
String title, url;

if (extras != null) {
title = extras.getString("title");
url = extras.getString("url");

WebView wbView = (WebView) findViewById(R.id.WebView);
wbView.getSettings().setJavaScriptEnabled(true);
wbView.loadUrl(url);
} //rest code

编辑:

确保您已连接到互联网并且您在 list 中具有以下权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

关于android - 将 URL 和标题传递给 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26798045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com