2017-04-02 82 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