Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295

Работа с webview

26.05.2017, 18:20. Показов 1012. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Пишу приложение с двумя activity. На первом находится несколько imagebutton, на втором активити, webview.
При нажатии на одну из кнопок должен осуществляться переход на определенный Url в webView. Но при нажатии на кнопку приложение вылетает вообще.
Код первого активити:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
            ImageButton phbtn = (ImageButton) findViewById(R.id.ib1);
 
 phbtn.setOnClickListener(new View.OnClickListener(){
 
    public void onClick(View v)
    {
        WebView webv = (WebView) findViewById(R.id.wv);
      
        webv.loadUrl("http://www.mail.ru");
 
       Intent intent = new Intent(MainActivity.this, WvActivity.class);
      
 
        startActivity(intent);
 
 
    }
});
}
. Может попытаться передавать url через intent.putExtra? Опять же так как кнопок несколько и url разные, как webView будет отлавливать нажатие и переходить по нужным url. Как быть? Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2017, 18:20
Ответы с готовыми решениями:

Работа с webview
Привет ребята! У меня следующая проблема. for (String key : map.keySet()) { textView.append("\n\t"+key +...

Работа WebView. Скрипты
Всем добрый день! Буквально недавно начал разрабатывать приложение на андроид. Как среду разработки использую android studio. ...

Webview
Всем привет.У меня вопросище. Или я так привык к шарпику, что разобраться совсем тяжко. Поехали, суть такова , необходимо просто...

5
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
26.05.2017, 19:25
Цитата Сообщение от SoloWay Посмотреть сообщение
Но при нажатии на кнопку приложение вылетает вообще.
Приложение не просто вылетает, оно еще и пишет кое - чего в лог. Выкладываете что у вас там.
P.S. Для начала, проверьте разрешения в манифесте на использование сети.
P.P.S. И вот так не надо делать.
Java
1
2
3
4
5
6
7
public void onClick(View v)
    {
      WebView webv = (WebView) findViewById(R.id.wv);
      
      .......
 
    }
В onCreate()перенести.
Ну раз такое дело, то и проверить обе ли активности в манифесте прописаны..
И вообще все выкладывайте, все что написали.
0
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
26.05.2017, 19:57  [ТС]
Вот логи:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.txa.kmas, PID: 20427
java.lang.NullPointerException
at com.example.txa.kmas.MainActivity$1.onCl ick(MainActivity.java:44)
at android.view.View.performClick(View.java :4560)
at android.view.View$PerformClick.run(View. java:18636)
at android.os.Handler.handleCallback(Handle r.java:733)
at android.os.Handler.dispatchMessage(Handl er.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(Activity Thread.java:5021)
at java.lang.reflect.Method.invokeNative(Na tive Method)
at java.lang.reflect.Method.invoke(Method.j ava:515)
at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:827)
at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)

Код 1го активити:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.example.txa.kmas;
 
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebChromeClient;
import android.widget.ImageButton;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.*;
import android.net.Uri;
 
 
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //  requestWindowFeature(Window.FEATURE_NO_TITLE);
      //  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
 
        ImageButton phbtn = (ImageButton) findViewById(R.id.ib1);
        ImageButton crmbtn = (ImageButton) findViewById(R.id.ib2);
        ImageButton corona = (ImageButton) findViewById(R.id.ib3);
        ImageButton kindex = (ImageButton) findViewById(R.id.ib4);
        ImageButton rtmbtn = (ImageButton) findViewById(R.id.ib5);
        ImageButton ptrbtn = (ImageButton) findViewById(R.id.ib6);
        //setContentView(R.layout.activity_main);
 
 
       phbtn.setOnClickListener(new View.OnClickListener(){
 
    public void onClick(View v)
    {
        WebView webv = (WebView) findViewById(R.id.wv);
 
       // WebSettings webSettings = webv.getSettings();
       // webSettings.setJavaScriptEnabled(true);
      //  webv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webv.loadUrl("http://www.mail.ru");
 
       Intent intent = new Intent(MainActivity.this, WvActivity.class);
 
 
 
      
        startActivity(intent);
 
 
 
    }
});
}
}
Код 2го активити

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.example.txa.kmas;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.webkit.WebChromeClient;
import android.webkit.*;
 
public class WvActivity extends AppCompatActivity {
private WebView wv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wv);
 
 
        wv = (WebView)findViewById(R.id.wv);
       // включаем поддержку JavaScript
       wv.getSettings().setJavaScriptEnabled(true);
 
    }
}
Манифест

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.txa.kmas">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        <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=".WvActivity">
        </activity>
    </application>
 
</manifest>
0
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
26.05.2017, 20:40
Ага.
А зачем вам на первой активити WebView? Там это не нужно.
WebView должен быть во второй активити. (если я правильно понял ваше условие)
Вообще более менее стандартный способ использования WebView примерно такой.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Doc extends Activity {
    private WebView mWebView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.doc);
 
        mWebView = (WebView) findViewById(R.id.webView);
        mWebView.setWebViewClient(new MyWebViewClient());
        // включаем поддержку JavaScript
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        // указываем страницу загрузки
        mWebView.loadUrl("");
 
    }
    public class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (Uri.parse(url).getHost().length() == 0) {
                return false;
            }
 
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            view.getContext().startActivity(intent);
            return true;
        }
 
    }
 
    @Override
    public void onBackPressed() {
        if (mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}
Вот такая вот примерно должна быть ваша вторая активность. А адрес, передаете из первой. "Стрингой" например.
1
25 / 25 / 6
Регистрация: 26.09.2010
Сообщений: 295
26.05.2017, 22:19  [ТС]
Спасибо) Буду экспериментировать.
0
31 / 29 / 8
Регистрация: 07.01.2017
Сообщений: 205
28.05.2017, 13:03
Как вариант кидать PutExtra или же сделать ImageButton в RV и передавать значение по GetAdapterPosition
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2017, 13:03
Помогаю со студенческими работами здесь

WebView
У меня есть лист меню, как сделать так что бы при нажатии на первый объект так можно сказать открывался бразузер и преходил по заданной...

WebView
Добрый день! Мне нужно выполнить действие после полной загрузки страницы в WebView. Нужно что-то типа Qtшного сигнала...

WebView - Height
Добрый вечер. Вот такая пробела. Когда я передаю информацию в WebView он почему выводится только на (height:10px;) и включает...

Gif в WebView
В одном известном браузере просмотр гиф реализован так: статическая картинка (фрейм), после клика по нему этот фрейм преобразуется в гифку....

WebView. Крякозябры
WebView myWebView = (WebView) findViewById(R.id.webView); String summary = &quot;&lt;html&gt;&lt;body&gt;&quot; + text + &quot;&lt;/body&gt;&lt;/html&gt;&quot;; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru