У меня есть 2 проблемы: 1) Я получаю NullPointerException при вызове setOnClickListener для TabItemNullPointerException при вызове setOnClickListener для TabItem
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.TabItem.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.lineup.android.webbrowser.MainActivity.initTabItems(MainActivity.java:67)
at com.lineup.android.webbrowser.MainActivity.onCreate(MainActivity.java:33)
at android.app.Activity.performCreate(Activity.java:6904)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
2) Я не могу скрыть панель инструментов, при прокрутке
If кто-нибудь может мне помочь, я был бы очень благодарен.
activity_main.xml `
android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/main_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/custom_toolbar_size" />
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/custom_tablayout_size"
android:layout_gravity="bottom"
android:background="@color/toolbarColor"
app:tabIndicatorHeight="0dp"
>
<android.support.design.widget.TabItem
android:id="@+id/ti_arrow_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_arrow_back" />
<android.support.design.widget.TabItem
android:id="@+id/ti_arrow_forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_arrow_forward" />
<android.support.design.widget.TabItem
android:id="@+id/ti_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_update" />
<android.support.design.widget.TabItem
android:id="@+id/ti_inset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_inset" />
<android.support.design.widget.TabItem
android:id="@+id/ti_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_star_border" />
</android.support.design.widget.TabLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/custom_tablayout_size"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
**`
toolbar.xml
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/custom_toolbar_size"
android:background="@color/toolbarColor"
android:paddingTop="2dp"
app:layout_scrollFlags="scroll|enterAlways" />
и MainActivity.class
import android.os.Bundle;
import android.support.design.widget.TabItem;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Toolbar mToolbar;
private SearchView mSearchView;
private TabItem mArrowBack;
private TabItem mArrowForward;
private TabItem mUpdate;
private TabItem mInset;
private TabItem mStar;
private WebView mWebView;
private String START_URL = "https://www.google.com.ua/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initToolbar();
initTabItems();
mWebView = (WebView) findViewById(R.id.webview);
mWebView.loadUrl(START_URL);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new CustomWebViewClient());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem myActionMenuItem = menu.findItem(R.id.menu_item_search);
mSearchView = (SearchView) myActionMenuItem.getActionView();
return true;
}
private void initToolbar() {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle(null);
}
private void initTabItems() {
mArrowBack = (TabItem) findViewById(R.id.ti_arrow_back);
mArrowBack.setOnClickListener(this);
mArrowForward = (TabItem) findViewById(R.id.ti_arrow_forward);
mUpdate = (TabItem) findViewById(R.id.ti_update);
mInset = (TabItem) findViewById(R.id.ti_inset);
mStar = (TabItem) findViewById(R.id.ti_star);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.ti_arrow_back:
if(mWebView.canGoBack()) mWebView.goBack();
break;
default:
break;
}
}
}
@ Rotwang, вы ошибаетесь. Это не дубликат. Это не просто «еще один». У меня есть NullPointerException, помогите мне! * Вопрос'. Это действительно странно. –
@ VladMatvienko Как этот NPE отличается от всех остальных? –
@ Rotwang, если вы прочитали вопрос, просмотрите код, вы поймете, что код верный, и нет никаких причин для этого NPE. Вот почему связанный вопрос не может решить проблему. Все правильно инициализировано, совпадают идентификаторы и т. Д. –