当我尝试构建我的项目时,我得到了这个错误。
incompatible types: 工具栏不能被转换为int
我发现很多类似的问题,但他们没有帮助我,我的工作与这个库。
import androidx.appcompat.widget.Toolbar;
这是我的代码
package com.majaxtn.codingup;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.legacy.app.ActionBarDrawerToggle;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import static com.majaxtn.codingup.R.*;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private FirebaseDatabase database;
private FirebaseAuth auth;
private DatabaseReference myRef;
private boolean isAdmin=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(id.toolbar);
setSupportActionBar(toolbar);
auth = FirebaseAuth.getInstance();
database=FirebaseDatabase.getInstance();
myRef=database.getReference();
myRef.child("admins").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.child(auth.getUid()).exists()&&dataSnapshot.child(auth.getUid()).getValue().toString().equals("true"))
isAdmin=true;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, string.navigation_drawer_open, string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_test) {
startActivity(new Intent(MainActivity.this,Tests.class));
} else if (id == R.id.nav_result) {
if(isAdmin)
startActivity(new Intent(MainActivity.this,ResultsAdmin.class));
else startActivity(new Intent(MainActivity.this,Results.class));
} else if (id == R.id.nav_respass) {
startActivity(new Intent(MainActivity.this, ResetPasswordActivity.class));
} else if (id == R.id.nav_signout) {
auth.signOut();
startActivity(new Intent(MainActivity.this, LoginActivity.class));
finish();
} else if (id == R.id.nav_details) {
startActivity(new Intent(MainActivity.this, AddDetails.class));
} else if(id==R.id.about_details){
startActivity(new Intent(MainActivity.this,AboutUsActivity.class));
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
下面是我的问题的屏幕
而不是这个导入行-> import androidx.legacy.app.ActionBarDrawerToggle。
试着使用这个 -> import androidx.appcompat.app.ActionBarDrawerToggle。