clicking on the menu itemのアカウント設定ページにアクセスできません。アイテムをクリックすると、error messagesが私のログキャットに表示されます。私はこの問題を解決するためにさまざまなソリューションを試しましたが、残念ながら運はありません。Firebaseデータベースを使用して「アカウント設定」アクティビティを実行するにはどうすればよいですか?
これは私のdatabase structureです。
これは私のSettingsActivity.javaファイル
public class SettingsActivity extends AppCompatActivity {
private DatabaseReference mUserDatabase;
private FirebaseUser mCurrentUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
String current_uid = mCurrentUser.getUid();
//String current_uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(current_uid);
mUserDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Toast.makeText(SettingsActivity.this, dataSnapshot.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
これは私のMainActivity.java
ユーザーは、 "アカウント設定" メニューをクリックし、この活動からpublic class MainActivity extends AppCompatActivity {
// Creating an instance of the FirebaseAuth object
private FirebaseAuth mAuth;
private Toolbar mToolbar;
private ViewPager mViewPager;
private SectionsPagerAdapter mSectionsPagerAdapter;
private TabLayout mTabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize the object
mAuth = FirebaseAuth.getInstance();
// Set the toolbar
mToolbar = (Toolbar) findViewById(R.id.main_Toolbar);
setSupportActionBar(mToolbar); // allows the toolbar to be displayed on the screen
getSupportActionBar().setTitle("Lapit Chat");
// Tabs
mViewPager = (ViewPager) findViewById(R.id.main_tabPager);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mSectionsPagerAdapter);
mTabLayout = (TabLayout) findViewById(R.id.mainTabs);
mTabLayout.setupWithViewPager(mViewPager);
}
@Override
public void onStart() {
super.onStart();
// get the current user logged in via Firebase and store it in the create variable
FirebaseUser currentUser = mAuth.getCurrentUser();
// if there is no user
if (currentUser == null) {
// User is not signed in; show the start activity
sendToStart();
} // if user is logged in, go straight to the main page
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// If the user clicks the logout button
if(item.getItemId() == R.id.menu_Logout) {
// Log the user out of the session
FirebaseAuth.getInstance().signOut();
sendToStart();
}
if(item.getItemId() == R.id.menu_Settings) {
Intent settingsIntent = new Intent(MainActivity.this, SettingsActivity.class);
startActivity(settingsIntent);
}
return true;
}
// Method to send the user back to the start page when logged out
private void sendToStart() {
Intent startIntent = new Intent(MainActivity.this, StartActivity.class);
startActivity(startIntent);
finish(); // Prevents user from coming back to this page when clicking the back button
}
}
、ですそれは私に許可されず、 "残念なことに停止しました"というダイアログボックスを表示します。エラーのスクリーンショットにはなぜそれが表示されますが、私が解決策を研究したにもかかわらずまだ理解していません。誰が私になぜこれが起こっているのか説明できますか?
ありがとうございました。
感謝の原因になります、それが働きました。心から感謝する。神様があなたを祝福してください。 – hhh
@hhhよろしくお願いします!他の人に受け入れられたように私の答えに印を付けてください – nhoxbypass