1

У меня есть 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; 
     } 
    } 
} 
+0

@ Rotwang, вы ошибаетесь. Это не дубликат. Это не просто «еще один». У меня есть NullPointerException, помогите мне! * Вопрос'. Это действительно странно. –

+0

@ VladMatvienko Как этот NPE отличается от всех остальных? –

+0

@ Rotwang, если вы прочитали вопрос, просмотрите код, вы поймете, что код верный, и нет никаких причин для этого NPE. Вот почему связанный вопрос не может решить проблему. Все правильно инициализировано, совпадают идентификаторы и т. Д. –

ответ

0

Попробуйте установить setOnTabSelectedListener вместо onClick из вкладок элемента

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      // Do stuff 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 

Или вы также можете попробовать что-то вроде этого

tabLayout.getChildAt(TabIndex).setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
    // Do stuff 
} 

});

+0

К сожалению, то же самое - NullPointerException. – Ilya

+0

Возможно у вас есть еще несколько решений? :) – Ilya

 Смежные вопросы

  • Нет связанных вопросов^_^