異なるアクティビティに属するボタンのonClickListener
を設定するにはどうすればよいですか? 私はsharedPreferences
を使用しており、別のアクティビティでログアウトボタンを作成したいとします。起動時に開くアクティビティには、ログアウトボタンはありません。だからこそ私はsharedPreferences
のコードをすべてプロファイル活動に持っていません。別のアクティビティクラスからonclicklistenerを設定するにはどうすればよいですか?
HomeActivityクラス:
//UserSessionManager class
UserSessionManager session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//start new activity when fab is clicked
final FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), Profile.class);
startActivity(intent);
}
});
session = new UserSessionManager(getApplicationContext());
//check if user is logged in
//if the user is not logged in
if (session.checkLogin()) {
finish();
}
HashMap<String, String> user = session.getUserDetails();
//get variables
String username = user.get(UserSessionManager.KEY_USERNAME);
String age = user.get(UserSessionManager.KEY_AGE);
String firstName = user.get(UserSessionManager.KEY_FIRSTNAME);
EditText etUsername = (EditText) findViewById(R.id.etEmail);
EditText etAge = (EditText) findViewById(R.id.etAge);
私は、ログアウトボタンがプロフィール活動になりたいです。私は、パラメータとしてHomeActivity
クラスからセッション変数を受け取り、送信セッションのメソッドを作成し、さまざまなことをやった後
Button bLogOut;
UserSessionManager sessionManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
}
public void sendSession(final UserSessionManager userSession) {
bLogOut = (Button)findViewById(R.id.bLogOut);
bLogOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userSession.logoutUser();
}
});
}
:ここ
はプロファイルクラスです。私はまだnullpointerexception
を持っています。