當我登錄課堂並使用導航抽屜調用activity_Main時,無法導航菜單。當我通過activity_main啓動應用程序時,導航抽屜可正常工作。登錄+導航抽屜
錯誤: 方法調用「drawer.setDrawerListener(切換)」可以產生「顯示java.lang.NullPointerException」更少...(按Ctrl + F1) 該檢查分析方法控制和數據流以報告是可能的條件永遠是真的或假的,其價值被靜態證明是不變的表達以及可能導致違反合同的情況。 標記爲@Nullable或@NotNull的變量,方法參數和返回值被視爲可爲空(或分別爲非空),並在分析過程中用於檢查可空性合約。報告可能的NullPointerException錯誤。 可以使用@Contract註釋來定義更復雜的合同,例如: @Contract(「,null - > null」) - 如果方法的第二個參數爲null,則返回null @Contract(「,null - > null; _ ,!null - >!null「) - 如果方法的第二個參數爲null,則返回null,否則返回null。@Contract(」true - > fail「) - 一個典型的assertFalse方法,如果傳給true,則拋出異常 可以將檢查配置爲使用自定義@Nullable @NotNull註釋(默認情況下將使用annotations.jar中的那些註釋)'setDrawerListener(android.support.v4.widget.DrawerLayout.DrawerListener)'已棄用較少...( Ctrl + F1) 此檢查報告在指定的檢查範圍中使用棄用代碼的位置。
登錄
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Set up the login form.
mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
populateAutoComplete();
mPasswordView = (EditText) findViewById(R.id.password);
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
if (id == R.id.login || id == EditorInfo.IME_NULL) {
attemptLogin();
return true;
}
return false;
}
});
Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
mEmailSignInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
attemptLogin();
}
});
mLoginFormView = findViewById(R.id.login_form);
mProgressView = findViewById(R.id.login_progress);
Button email_sign_in_button = (Button) findViewById(R.id.email_sign_in_button);
email_sign_in_button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
setContentView(R.layout.activity_main);
}
});
}
主要活動
公共類MainActivity擴展AppCompatActivity 實現NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
FragmentManager fm = getFragmentManager();
fm.beginTransaction().replace(R.id.content_frame, new MainFragment()).commit();
}
這個問題根本不清楚。請考慮編輯它以清楚地陳述特定問題並顯示您嘗試解決問題的代碼。 – NoChinDeluxe
@NoChinDeluxe好了,完成了。 –