2017-08-13 22 views
0

Intentで次のアクティビティに移動中に問題が発生しました。警告ダイアログのボタンをクリックした後、次のアクティビティに移動します(ログアウト設定をクリックした後に表示されます)

エラーは次のとおりです。

"コンストラクタ「テント(anonymous.android.content.DialogInterface.OnClickListener、Javaのlang.Class)を解決することはできません" 私は戻ってナビゲートする必要がありますログアウトボタンをクリックしてログイン画面を開きます。ここで

は、以下の私のコードです:

public class SettingsActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_settings); 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    SettingsFragment settingsFragment = new SettingsFragment(); 
    fragmentTransaction.add(android.R.id.content,settingsFragment, "SETTINGS_FRAGMENT"); 
    fragmentTransaction.commit(); 


    } 

public static class SettingsFragment extends PreferenceFragment { 

    public void onClick(){ 
     AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); 
     alert.setTitle(getResources().getString(R.string.log_out)); 
     //Set up your AlertDialog and buttons 
     alert.setMessage(getResources().getString(R.string.are_you_sure_you_want_to_log_out_of_yoqa)); 
     alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int whichButton) { 

      } 
     }); 
     alert.setPositiveButton(R.string.logout, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       Intent i = new Intent(this,LoginActivity.class); 
       startActivity(i); 
      } 
     }); 
     alert.setCancelable(true); 
     alert.show(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.pref_settings); 
     Preference myPref = findPreference("logout"); 
     myPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
      @Override 
      public boolean onPreferenceClick(Preference preference) { 
       onClick(); 
       return true; 
      } 
     }); 

    } 

    } 

} 

答えて

1

あなたはFragmentからナビゲートしている

Intent i = new Intent(SettingsFragment.this.getActivity(), LoginActivity.class); 
0

Intent i = new Intent(this,LoginActivity.class); 

を交換してください。したがって、Fragmentからcontextを取得し、getActiviy()を使用してactivityを開始してください。

変更この:

Intent i = new Intent(this,LoginActivity.class); 

付:あなたはAndroidManifestファイルにあなたのactivityクラスを登録する必要が

Intent i = new Intent(getActivity(), LoginActivity.class); 

関連する問題