Как исправить не удается разрешить метод 'setContentView' в Android - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь написать приложение для Android, и все, кажется, работает, за исключением одной строки, то есть 'setContentView'

Есть ли способ, которым я мог бы заменить вышеуказанную функцию

Это код, о котором идет речь, и проблема в строке 18

public class HiraFragment extends Fragment{

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_hira,null);
}

WebView web;
ProgressBar progressBar;
ImageView logo;
ImageView bg;
TextView text;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    web = (WebView) getView().findViewById(R.id.webView);
    progressBar = (ProgressBar) getView().findViewById(R.id.progressBar);
    logo = (ImageView) getView().findViewById(R.id.logo);
    bg = (ImageView) getView().findViewById(R.id.bg);
    text = (TextView) getView().findViewById(R.id.text);
    web.setWebViewClient(new hira());
    web.loadUrl("http://example.com/");
    web.getSettings().setJavaScriptEnabled(true);


}



public class hira extends WebViewClient {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        progressBar.setVisibility(View.GONE);
        logo.setVisibility(View.GONE);
        bg.setVisibility(View.GONE);
        text.setVisibility(View.GONE);
    }



    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
        progressBar.setVisibility(View.VISIBLE);
        logo.setVisibility(view.VISIBLE);
        bg.setVisibility(view.VISIBLE);
        text.setVisibility(view.VISIBLE);
    }



}

}

Все, что нужно сделать приложению - это иметь нижнюю панель навигации, вызвать экран загрузки и затем отобразить веб-страницу в веб-просмотре

Может кто-нибудь, пожалуйста, помогите. Заранее спасибо

1 Ответ

0 голосов
/ 07 сентября 2018

Вы создали класс Fragment, а не Activity, но ваш метод onCreate выглядит так, как будто он был скопирован из действия. Во Фрагменте нет метода setContentView.

Вы должны установить макет в onCreateView и настроить другие элементы, скажем, onActivityCreated или onCreateView. Например:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_hira, container, false);

    // To access the views, you need to prefix them with the rootView like this
    web = (WebView) rootView.findViewById(R.id.webView);
    progressBar = (ProgressBar) rootView.findViewById(R.id.progressBar);
    logo = (ImageView) rootView.findViewById(R.id.logo);
    bg = (ImageView) rootView.findViewById(R.id.bg);
    text = (TextView) rootView.findViewById(R.id.text); 

    web.setWebViewClient(new hira());
    web.loadUrl("http://example.com/");
    web.getSettings().setJavaScriptEnabled(true);

    return rootView;
}

Взгляните на руководство по Android для фрагментов здесь или используйте вместо него действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...