2017-09-03 62 views
0

這不是一個乾淨的重建問題!使模塊不會 解決這個問題。這是我在我的代碼中使用的唯一的 FlotingActionButton。一個解決方案表示,這隻有 發生錨定參數,但正如你可以看到我沒有使用一個 ,所以我不知道該怎麼做。java.lang.ClassCastException:android.support.v7.widget.AppCompatButton不能轉換爲android.support.design.widget.FloatingActionButton

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    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:id="@+id/activity_main" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/coverpic" 
    tools:context="com.android.nohiccupsbeta.MainActivity"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/effects_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_gravity="top|end" 
      android:layout_marginTop="400dp" 
      android:layout_marginRight="15dp" 
      android:src="@drawable/ic_book" 
      app:backgroundTint="@color/primary_color" /> 

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

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/take_test" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      app:backgroundTint="@color/primary_color" 
      android:src="@drawable/ic_handcuffs" /> 

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

</RelativeLayout> 

這是JAVA代碼。我嘗試導入協調員佈局,但不可能的 。我也嘗試宣告晶圓廠變種不同 只是爲了獲得同樣的錯誤:

package com.android.nohiccupsbeta; 

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

public class MainActivity extends AppCompatActivity { 

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


     FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(MainActivity.this, pageone.class)); 
      } 
     }); 


     FloatingActionButton fab2 = (FloatingActionButton)findViewById(R.id.fab2); 
     fab2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(MainActivity.this, BacTest.class)); 
      } 
     }); 
    } 

} 

回答

2

你的第二個FloatingActionButton沒有一個id,你試圖鑄造成FAB的一個是CoordinatorLayout。

所以,你應該設置在佈局一個id爲您晶圓廠這樣

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    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:id="@+id/activity_main" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/coverpic"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/effects_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_gravity="top|end" 
      android:layout_marginTop="400dp" 
      android:layout_marginRight="15dp" 
      android:src="@drawable/ic_book" 
      app:backgroundTint="@color/primary_color" /> 

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

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/take_test" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      app:backgroundTint="@color/primary_color" 
      android:src="@drawable/ic_handcuffs" /> 

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

</RelativeLayout> 

,你的晶圓廠,以配合這樣

FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fab); 
FloatingActionButton fab2 = (FloatingActionButton)findViewById(R.id.fab2); 
+0

它有I.D新的ID。我試了一下,然後把id放在浮動動作按鈕下,並給協調器佈局一個不同的id。我得到了同樣的錯誤 – 7kevin

+0

你有與第一個晶圓廠相同的問題。用工作代碼更新我的答案 – hacksy

+0

好了我現在更改了代碼我在日誌中獲取了不同的錯誤消息java.lang.NullPointerException:嘗試調用虛擬方法'void android.support.design.widget.FloatingActionButton.setOnClickListener(android .view.View $ OnClickListener)'在空對象引用 at com.android.nohiccupsbeta.MainActivity.onCreate(MainActivity.java:18) – 7kevin

相關問題