Java Can';不要创建一个多功能股票期权

Java Can';不要创建一个多功能股票期权,java,android,button,share,Java,Android,Button,Share,我已经创建了一个浮动按钮,并给它id fab 当人们点击它时,手机上安装的每个共享选项都会立即弹出,用户可以选择在哪里共享URL。 我通过意图创造了它,但它不起作用,而是崩溃了。请帮帮我。给我一小段代码 java的主要活动 Button buttonDonor; Button buttonInfo; Button needBlood; public static String donorId = "no"; SharedPreferences sharedPreferences; publ

我已经创建了一个浮动按钮,并给它id fab 当人们点击它时,手机上安装的每个共享选项都会立即弹出,用户可以选择在哪里共享URL。 我通过意图创造了它,但它不起作用,而是崩溃了。请帮帮我。给我一小段代码

java的主要活动

Button buttonDonor;
Button buttonInfo;
Button needBlood;


public static String donorId = "no";
SharedPreferences sharedPreferences;

public static Double lat = 0.0;
public static Double lng = 0.0;

private final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 1;

GoogleApiClient mGoogleApiClient;
LocationManager locationManager;
LocationListener locationListener;

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


    // Connecting to the database
    database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("donors");

    /**
     * Wiring up every thing
     */

 //sharebutton

    buttonInfo = (Button) findViewById(R.id.fab);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL");
            i.putExtra(Intent.EXTRA_TEXT, "http://google.com");
            startActivity(Intent.createChooser(i, "Share URL"));
        }
    });






    buttonInfo = (Button) findViewById(R.id.btn_info);
    Animation slideUpAnimation = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.information);
    buttonInfo.startAnimation(slideUpAnimation);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            startActivity(new Intent(MainActivity.this, Information.class));


        }
    });
    buttonInfo = (Button) findViewById(R.id.developer);
    Animation slideUpAnimation1 = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.developer);
    buttonInfo.startAnimation(slideUpAnimation1);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            startActivity(new Intent(MainActivity.this, About.class));
        }
    });
    buttonInfo = (Button) findViewById(R.id.request);
    Animation slideUpAnimation2 = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.request_blood);
    buttonInfo.startAnimation(slideUpAnimation2);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, RequestBlood.class));
        }
    });

    buttonInfo = (Button) findViewById(R.id.check_request);
    Animation slideUpAnimation3 = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.check_request);
    buttonInfo.startAnimation(slideUpAnimation3);
    buttonInfo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, RequestList.class));
        }
    });

    needBlood = (Button) findViewById(R.id.btn_need_blood);
    Animation slideUpAnimation4 = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.need_blood);
    needBlood.startAnimation(slideUpAnimation4);
    needBlood.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, NeedBlood.class));


        }
    });


    buttonDonor = (Button) findViewById(R.id.btn_donor_profile);
    Animation slideUpAnimation6 = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.be_donor);
    buttonDonor.startAnimation(slideUpAnimation6);
    if (donorId.toString().equals("no")) {
        buttonDonor.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, DonorForm.class));
            }
        });
    } else {

    }

    /**
     * Initializing variable
     */
    try {
        donorId = sharedPreferences.getString("id", "no");

    } catch (Exception e) {
        e.printStackTrace();
    }

    if (mGoogleApiClient == null) {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
    }

    locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            lat = location.getLatitude();
            lng = location.getLongitude();
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {

        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onProviderDisabled(String provider) {

        }
    };

    locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

    if (!locationManager.isProviderEnabled(GPS_PROVIDER)) {
        Toast.makeText(MainActivity.this, "Please Turn on Location", Toast.LENGTH_LONG).show();
        Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
        MainActivity.this.startActivity(myIntent);
    }


    if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        /**
         * Crating a location request
         */


        ActivityCompat.requestPermissions(MainActivity.this,
                new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
                MY_PERMISSIONS_REQUEST_READ_CONTACTS);


        return;
    }
    locationManager.requestLocationUpdates(GPS_PROVIDER, 1000, 1, locationListener);


}

protected void onStart() {
    mGoogleApiClient.connect();
    super.onStart();
}

protected void onStop() {
    mGoogleApiClient.disconnect();
    super.onStop();
}

@Override
public void onConnected(@Nullable Bundle bundle) {

}

@Override
public void onConnectionSuspended(int i) {

}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {

}






boolean doubleBackToExitPressedOnce = false;

@Override
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
        return;
    }

    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "Please click Back twice to exit", Toast.LENGTH_SHORT).show();

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            doubleBackToExitPressedOnce = false;
        }
    }, 2000);
}




}

buttonInfo=(Button)findViewById(R.id.fab)处发出。
因为fab是FloatingActionButton,您将其强制转换为按钮类型

替换共享代码部分。像

FloatingActionButton fabBtn = (Button) findViewById(R.id.fab);
fabBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("text/plain");
        i.putExtra(Intent.EXTRA_SUBJECT, "Sharing URL");
        i.putExtra(Intent.EXTRA_TEXT, "http://google.com");
        startActivity(Intent.createChooser(i, "Share URL"));
    }
});
原因:java.lang.ClassCastException:android.support.design.widget.FloatingActionButton无法强制转换为android.widget.Button 位于com.nissan.dnmcbloodbank.MainActivity.onCreate(MainActivity.java:72)

更换这条线

按钮信息

这条线呢

buttonInfo = (Button) findViewById(R.id.fab);


你得到了什么异常?在这里崩溃apppost日志。请检查下面检查我的答案。
buttonInfo = (Button) findViewById(R.id.fab);
buttonInfo = (FloatingActionButton) findViewById(R.id.fab);