【问题标题】:Open URL from json array in Webview从 Webview 中的 json 数组打开 URL
【发布时间】:2017-03-08 05:26:57
【问题描述】:

我正在尝试在与我在 JSONArray 中获取的 URL 不同的类中打开 Web 视图中的 URL。

MainActivity 类(我可以使用我在类中创建的获取 JSON 并解析为数组的 getURL 方法来获取 URL 并显示在 Toast 消息中)

@Override
protected void onPostExecute(Integer result) {
   final Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
   progressBar.setVisibility(View.GONE);
   if (result == 1) {
      adapter = new MyRecyclerViewAdapter(MainActivity.this, feedsList);
      mRecyclerView.setAdapter(adapter);
      adapter.setOnItemClickListener(new OnItemClickListener() {
         @Override
         public void onItemClick(FeedItem item) {
            Toast.makeText(MainActivity.this, item.getUrl(), Toast.LENGTH_LONG).show();
            // Here is what I've tried below but doesn't work
            String blogUrl = item.getUrl();
            Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
            intent.setData(Uri.parse(blogUrl));
            startActivity(intent);
         }
      });
   }
}

这是我的 WebViewActivity 类

public class WebViewActivity extends AppCompatActivity {
   public WebView myWebView;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_web_view);
      String url = getIntent().getStringExtra("url");
      myWebView = (WebView) findViewById(R.id.webView);
      myWebView.setWebViewClient(new WebViewClient());
      WebSettings webSettings = myWebView.getSettings();
      webSettings.setJavaScriptEnabled(true);
      myWebView.loadUrl(url);
   }
}

当单击我的 RecyclerView 中的项目时会发生什么,它会打开 webview 活动但只显示一个空白屏幕,如果我将其注释掉并且只有 Toast 消息它会显示正确的 URL。我做错了什么?

--编辑-- 我在 AndroidManifest 中也定义了活动

<activity
     android:name=".WebViewActivity"
     android:label="@string/title_activity_web_view"
     android:parentActivityName=".MainActivity"
     android:theme="@style/AppTheme">
     <meta-data
         android:name="android.support.PARENT_ACTIVITY"
         android:value="com.mts2792.fishnews.MainActivity" />
</activity>

【问题讨论】:

  • 您是否在清单中添加了互联网权限?
  • 是的,我添加了

标签: android json android-activity webview


【解决方案1】:

您使用 setData 将 url 放入意图中,并尝试使用 getStringExtra() 从第二个活动中的意图中获取它。

所以,你应该在第二个活动中使用getData

【讨论】:

  • 我不认为这是解决方案,因为问题中已经提到了当他将正确的 URL 放入 Toast 时会显示正确的 URL。
  • 谢谢,我不敢相信我错过了。我知道这一定很简单。
  • @Jordan 它确实有效,尽管加载页面似乎非常慢,这是一个单独的问题(我使用的是 Wi-FI 和 1GB 连接)。
  • @Mitch Well 恭喜队友!
猜你喜欢
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多