2017-04-02 31 views
0

當我在編輯器中查看我的代碼時,沒有任何問題。但是,當我在手機上運行代碼並嘗試從一個活動轉到另一個具有浮動操作按鈕的活動時,浮動操作按鈕無法通過Id查找視圖,儘管在Java和XML中ID完全相同。Android Floating Action Button未被識別

我的Java:

package com.test.app.app2_test1; 

import android.support.design.widget.FloatingActionButton; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 

public class TermsOfUse extends AppCompatActivity { 
    FloatingActionButton mFloatingActionButton; 

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

     mFloatingActionButton = (FloatingActionButton) mFloatingActionButton.findViewById(R.id.terms_back_fab); 

     mFloatingActionButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
    } 
} 

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.test.app.app2_test1.TermsOfUse" 
    android:background="@color/backdrop"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="44dp" 
     android:orientation="vertical"> 

    </ScrollView> 

    <View 
     android:layout_gravity="bottom" 
     android:layout_width="match_parent" 
     android:layout_height="44dp" 
     android:background="@color/colorPrimary" 
     android:elevation="4dp"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/terms_back_fab" 
     android:layout_gravity="bottom" 
     android:layout_width="56dp" 
     android:layout_height="56dp" 
     android:layout_margin="16dp" 
     android:src="@drawable/ic_arrow_back" 
     app:pressedTranslationZ="12dp"/> 

</android.support.design.widget.CoordinatorLayout> 

,我在我的控制檯得到的消息是:

試圖調用虛擬方法機器人。 view.View android.support.design.widget.FloatingActionButton.findViewById(int)'null對象引用

任何幫助,將不勝感激。

+0

Android Studio中必須提醒你的潛在NPE – peter

回答

1

您正在將自己的觀點視爲自己的孩子!

替換:

mFloatingActionButton = (FloatingActionButton) mFloatingActionButton.findViewById(R.id.terms_back_fab); 

有了:

mFloatingActionButton = (FloatingActionButton)findViewById(R.id.terms_back_fab); 
+1

謝謝!我一直在探討,但我沒有明白。一雙新鮮的眼睛能看到它真是太神奇了。再一次,非常感謝你! – newbRaymond

+0

是啊!別客氣 :) – tahsinRupam