2017-09-03 63 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

相关问题