Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

ステータスコードに応じてWebViewを表示

$
0
0
AndroidStudioにてHttpURLConnectionの接続が成功したときにWebViewを表示したいのですが表示できません。 どこがいけないのか、わからないのでご教示願います。 状況 try/catch文の途中までコードは走るがWebViewをロードしようとしたところで例外が発生してしまう。 目的と方向性 WebViewで表示されなかったエラー画面に404や500のステータスコードを表示したい。まずは接続に成功したときにWebViewを起動するという事を成功させようとしている。 よろしくお願い致します。 以下ソースコード -- public class MainActivity extends Activity { private ImageView imageView; private EditText etitText; private Button downloadButton; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etitText = (EditText) findViewById(R.id.uri); imageView = (ImageView) findViewById(R.id.result); downloadButton = (Button) findViewById(R.id.download); downloadButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { taskExe(); } }); } private void taskExe(){ final String param0 = etitText.getText().toString(); AsyncTask task = new AsyncTask(){ Bitmap bmp; @Override protected Void doInBackground(Void... params) { bmp = downloadImage(param0); return null; } @Override protected void onPostExecute(Void result){ imageView.setImageBitmap(bmp); } }; task.execute(); } private Bitmap downloadImage(String address) { Bitmap bmp = null; try { URL url = new URL( address ); // HttpURLConnection インスタンス生成 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); // タイムアウト設定 urlConnection.setReadTimeout(10000); urlConnection.setConnectTimeout(20000); // リクエストメソッド urlConnection.setRequestMethod("GET"); // リダイレクトを自動で許可しない設定 urlConnection.setInstanceFollowRedirects(false); // ヘッダーの設定(複数設定可能) urlConnection.setRequestProperty("Accept-Language", "jp"); // 接続 urlConnection.connect(); int resp = urlConnection.getResponseCode(); switch (resp){ case HttpURLConnection.HTTP_OK: InputStream is = urlConnection.getInputStream(); bmp = BitmapFactory.decodeStream(is); WebView myWebView = (WebView) findViewById(R.id.webView); myWebView.setWebViewClient(new WebViewClient()); myWebView.loadUrl("https://www.google.com/"); is.close(); break; case HttpURLConnection.HTTP_UNAUTHORIZED: break; default: break; } } catch (Exception e) { Log.d(TAG, "downloadImage error"); e.printStackTrace(); } return bmp; } } -- --

Viewing all articles
Browse latest Browse all 2439

Trending Articles