Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 5
1

Как прикрутить "свой браузер" к странице - "фрагмент"

28.07.2015, 22:58. Показов 1461. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте. все, уже голову сломал. не соображаю совсем. не получается прикрутить код браузера к странице fragments.выводиться должно на- R.layout.news. обложка программы "боковое слайдер-меню". выдвинул слайдер, там кликнул. загрузилась страница Новости, которая автоматом загружает страницу с сайта.
код News.java который открывает страницу
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.example.pinsklife.pl3.fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
import com.example.pinsklife.pl3.R;
public class News extends Fragment {
    public News() {
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.news, container, false);
        return rootView;
    }
}
код браузера, который нужно вставить.
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
package com.example.pinsklife.pl3;
 
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
 
public class BrowserActivityVideo extends ActionBarActivity {
 
    private WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.news);
 
        mWebView = (WebView) findViewById(R.id.webViewNews);
 
        // включаем поддержку JavaScript
        mWebView.getSettings().setJavaScriptEnabled(true);
 
        // указываем страницу загрузки
        mWebView.loadUrl("http://rambler.ru" );
 
        // запрещаем использование другого браузера
        mWebView.setWebViewClient(new HelloWebViewClient());
 
    }
      // запрещаем использование другого браузера
    private class HelloWebViewClient extends WebViewClient {@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }}
 
    public void onBackPressed() { if(mWebView.canGoBack()) {  mWebView.goBack(); } else {  super.onBackPressed();  }}
}
по отдельности работают. вместе- на экране чистое поле.


код news.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/news"
        android:textAppearance="?android:attr/textAppearanceMedium" />
 
 <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webViewNews"
        android:layout_marginTop="60dp"/>
 
</RelativeLayout>
ну и MainAktivity.java
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
package com.example.pinsklife.pl3;
 
 
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
import com.example.pinsklife.pl3.fragments.Afisha;
import com.example.pinsklife.pl3.fragments.Akcii;
import com.example.pinsklife.pl3.fragments.Glavnaya;
import com.example.pinsklife.pl3.fragments.Kalkulyator;
import com.example.pinsklife.pl3.fragments.Vizitki;
import com.example.pinsklife.pl3.fragments.News;
import com.example.pinsklife.pl3.fragments.Otdih;
import com.example.pinsklife.pl3.fragments.Raspisanie;
import com.example.pinsklife.pl3.fragments.Video;
 
public class MainActivity extends ActionBarActivity {
 
    private String[] mScreenTitles;
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
 
    private ActionBarDrawerToggle mDrawerToggle;
    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        mTitle = mDrawerTitle = getTitle();
        mScreenTitles = getResources().getStringArray(R.array.screen_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);
 
        // Set the adapter for the list view
        // Установить адаптер для представления списка
        mDrawerList.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_list_item, mScreenTitles));
        // Set the list's click listener
        // Установить список Нажмите на слушателя
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
 
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
 
        mDrawerToggle = new ActionBarDrawerToggle(
                this, /* host Activity */
                mDrawerLayout, /* DrawerLayout object */
                R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
                R.string.drawer_open, /* "open drawer" description */
                R.string.drawer_close /* "close drawer" description */
        ) {
 
            /** Called when a drawer has settled in a completely closed state.
             * Вызывается, когда векселедатель поселились в полностью закрытом состоянии.*/
            public void onDrawerClosed(View view) {
                getSupportActionBar().setTitle(mTitle);
                supportInvalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
                                                //создает вызов onPrepareOptionsMenu ()
            }
 
            /** Called when a drawer has settled in a completely open state.
             * Вызывается, когда ящик поселился в полностью открытом состоянии.*/
            public void onDrawerOpened(View drawerView) {
                getSupportActionBar().setTitle(mDrawerTitle);
                supportInvalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
                                                 // Создает вызов onPrepareOptionsMenu ()
            }
        };
 
        // Set the drawer toggle as the DrawerListener
        // Установить ящик переключения как DrawerListener
        mDrawerLayout.setDrawerListener(mDrawerToggle);
 
        // Initialize the first fragment when the application first loads.
        // Инициализировать первый фрагмент, когда первой загрузке приложения.
        if (savedInstanceState == null) {
            selectItem(0);
        }
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu;
        // Накачайте меню;
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }
 
    /* Called whenever we call invalidateOptionsMenu()
    Вызывается всякий раз, когда мы называем invalidateOptionsMenu ()*/
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // If the nav drawer is open, hide action items related to the content view.
        // Если NAV ящик открыт, предметы спрятать действий, связанных с учетом содержания
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_search).setVisible(!drawerOpen);
        return super.onPrepareOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
        // Передать событие ActionBarDrawerToggle, если она возвращает
        // Верно, то оно обрабатывается значок сенсорный приложение событие
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action buttons
        // Ручка кнопки действий
        switch(item.getItemId()) {
            case R.id.action_search:
                // Show toast about click.
                // Показать тост о мыши
                Toast.makeText(this, R.string.action_search, Toast.LENGTH_SHORT).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
 
    /* The click listener for ListView in the navigation drawer
     * Кликните для слушателя ListView в навигационной ящик */
    private class DrawerItemClickListener implements ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            selectItem(position);
        }
    }
 
    /** Swaps fragments in the main content view
     * Свопы фрагменты на главном экране содержимому*/
    private void selectItem(int position) {
        // Update the main content by replacing fragments
        // Обновление основное содержание, заменяя фрагменты
        Fragment fragment = null;
        switch (position) {
            case 0:
                fragment = new Glavnaya();
                break;
            case 1:
                fragment = new News();
                break;
            case 2:
                fragment = new Akcii();
                break;
            case 3:
                fragment = new Afisha();
                break;
            case 4:
                fragment = new Otdih();
                break;
            case 5:
                fragment = new Raspisanie();
                break;
            case 6:
                fragment = new Vizitki();
                break;
            case 7:
                fragment = new Video();
                break;
            case 8:
                fragment = new Kalkulyator();
                break;
            default:
                break;
        }
 
        // Insert the fragment by replacing any existing fragment.
// Вставьте фрагмент, заменив все существующие фрагмент
        if (fragment != null) {
            FragmentManager fragmentManager = getSupportFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.content_frame, fragment).commit();
 
            // Highlight the selected item, update the title, and close the drawer
            // Выделить выбранный элемент, обновить название и закройте ящик
            mDrawerList.setItemChecked(position, true);
            setTitle(mScreenTitles[position]);
            mDrawerLayout.closeDrawer(mDrawerList);
        } else {
            // Error
            Log.e(this.getClass().getName(), "Error. Fragment is not created");
        }
    }
 
    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        getSupportActionBar().setTitle(mTitle);
    }
 
    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     * При использовании ActionBarDrawerToggle, вы должны вызвать его в течение
     ***** * OnPostCreate () и onConfigurationChanged () ...
     */
 
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        // Синхронизация переключения состояние после onRestoreInstanceState произошло.
        mDrawerToggle.syncState();
    }
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggles
        // Pass любое изменение конфигурации в ящике переключает
        mDrawerToggle.onConfigurationChanged(newConfig);
    }
 
}
просьба. ногами не пинать. спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2015, 22:58
Ответы с готовыми решениями:

как прикрутить свой шаблон к joomla
Хочу сделать свой шаблон на жумле. Создаю папку в templates. Иду в админ панель и не вижу название...

Как к питону прикрутить другой браузер
Вот есть питон там можно выбрать браузер browser=webdriver.Firefox() вот так У меня есть...

Как прикрутить favicon к статической странице?
Приветствую друзья, требуется помощь, нужно прикрутить иконку которая отображается в браузере...

Как прикрутить свой домен к LiveJournal.com или валить оттуда?
Раздел помощи LiveJournal.com такой, что там не понять ничего: ...

9
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
28.07.2015, 23:53 2
Gbidon, покажи свой вариант кода где "они" вместе и где белый экран.
0
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 5
29.07.2015, 09:01  [ТС] 3
Mikalai, спасибо за внимание.

***************
Как это показать? проще описать.
"белый экран" - выводится только текст (TextView), а интернет страница нет, на ее месте белым-бело.

есть news.xml, имеет идентификатор webViewNews, если использовать только связку BrowserActivityNevs и news (без использования "фрагментного" перехода, т.е. как использование activity_main + MainActivity), все работает- страница сайта открывается.

есть News.java (Fragment), при его активации, он ссылается на R.layout.news. работает без проблем, страница news открывается с выводом заложенного TextView, а вот браузер не подает признаков жизни.

есть BrowserActivityNevs.java (ActionBarActivity), имеет ссылку setContentView(R.layout.news) на идентификатор webViewNews. и тут, как я понимаю, при любом вызове страницы news, она должна делать запрос к данному файлу и выполнить код, получить данные webViewNews и отобразить соответствующий WebView на странице news.

я скорее всего ошибаюсь, но понимаю процесс так. почему не работает?
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
29.07.2015, 09:30 4
По коду вроде проблем нет, но как я вижу news.java никакой инициализации браузера нет. Вам сейчас необходимо перенести код с BrowserActivityVideo.java в news.java. После того как вы View view = inflater.inflate(R.layout.news, container, false); и перед return view; вы должны инициализировать ваш браузер кодом из BrowserActivityVideo.java
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
29.07.2015, 09:49 5
Цитата Сообщение от Gbidon Посмотреть сообщение
по отдельности работают. вместе- на экране чистое поле.
Чего-то темните, уважаемый. BrowserActivityVideo нигде у вас не вызывается, а если бы вызывался, то не как фрагмент.
Засувайте vebView во фрагмент и дело в шляпе.

Добавлено через 38 секунд
Bend3r написал уже, я не видел.
0
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 5
29.07.2015, 17:39  [ТС] 6
спасибо. но что-то не идет .
что нужно вставить между
Java
1
2
3
4
       
 View rootView = inflater.inflate(R.layout.news, container,  false);
????
 return rootView;
понимаю- НЕУЧ.

Добавлено через 8 минут
findViewById- красный
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
29.07.2015, 17:54 7
Цитата Сообщение от Gbidon Посмотреть сообщение
findViewById- красный
а так
Java
1
rootView.findViewById
0
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 5
29.07.2015, 18:20  [ТС] 8
Приогромное спасибо и низкий поклон.
Только вот тут другая проблемка нарисовалась- onBackPressed();- красный
Java
1
2
3
4
    public void onBackPressed() { if(mWebView.canGoBack()) {  mWebView.goBack(); }
 else {
  super.onBackPressed();  
}}
0
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 5
31.07.2015, 09:12  [ТС] 9
Цитата Сообщение от Gbidon Посмотреть сообщение
Только вот тут другая проблемка нарисовалась- onBackPressed();- красный

*
Java
1
2
3
4
* public void onBackPressed() { if(mWebView.canGoBack()) { *mWebView.goBack(); }
*else {
* super.onBackPressed(); *
}}
может кто подскажет решение?
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
31.07.2015, 09:37 10
Цитата Сообщение от Gbidon Посмотреть сообщение
может кто подскажет решение?
если не ошибаюсь, у фрагментов нет onBackPressed(), вешайте на активити
0
31.07.2015, 09:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2015, 09:37
Помогаю со студенческими работами здесь

Как заменить (перенести) фрагмент кода в WP странице перевод выводом
Нужно перенести фрагмент кода из одной части сгенерированной страницы в другую. решение типа...

Как создать свой браузер?
Как создать свой браузер? Что почитать об этом?

Как создать свой браузер?
Недавно стал изучать программирование в среде C#. Для начала пробовал создавать браузеры. Решил,...

Как написать свой Браузер на С++
Всем добрый день Недавно прочитал статейку :read: в интернете (не помню на каком сайте точно)...

Яндекс навязывает свой браузер. Как избавиться?
Как ни открою Яндекс, всплывает предложение установить Яндекс-браузер. Раньше это была строка...

Как программно сделать свой браузер по умолчанию?
Как программно сделать свой браузер по умолчанию? Помогите, пожалуйста Добавлено через 1 час 7...

Как добавить поддержку видео на YouTube в свой браузер?
Заголовок всё своё говорит,но у меня проблема: Я создал браузер,зашёл через него на ютуб,запустил...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru