1

listView とカスタム アダプターがあり、onclicklistener をテキスト ビューに作成しました。そのテキスト ビューからのリンクを Web ビューで開きたいのですが、どうすればよいですか?

4

1 に答える 1

0

多くの調査の後、私は答えを見つけました。それは本当に簡単でした. カスタム アダプター クラスで onclickListener を設定する必要があります。それだけで、intent.putextra(); を使用してそのクラスに文字列を送信する Web ビューを表示するクラスを作成します。私がwebviewを表示しているクラスはこれです

public class Main extends Activity {

WebView myWebView;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);

Intent in = getIntent();
String url = in.getStringExtra(("url"));
myWebView = (WebView) findViewById(R.id.webview);

myWebView.getSettings().setBlockNetworkImage(true);

myWebView.getSettings().setBlockNetworkLoads(true);


myWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setPluginState(PluginState.ON);
myWebView.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
myWebView.loadUrl(url);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
    myWebView.goBack();
    return true;
    }
    return super.onKeyDown(keyCode, event);
    }
class MyWebViewClient extends WebViewClient {
      @Override
      // show the web page in webview but not in web browser
       public boolean shouldOverrideUrlLoading(WebView view, String url) {
        //1 option 
         getApplicationContext().startActivity(
         new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        // 2 option
        view.loadUrl(url);
            return true;
      }
    }
    }
于 2013-05-01T12:06:58.510 に答える