私は自分のモデルを次のように抽象化します: まず、UserInfo
ユーザー情報を保持するクラスがあります:
public class UserInfo extends Application{
private int userid;
public void setUserId(int id)
{
userid=id;
}
public int getUserId()
{
return userid;
}
}
次に MainActivity で:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
userinfo=(UserInfo)getApplication();
userinfo.setUserId(1354);
....
Intent intent=new Intent(MainActivity.this,VoteActivity.class);
startActivity(intent);
}
public
@Override void onResume()
{
super.onResume();
TextView text=(TextView)MainActivity.this.findViewById(R.id.usernameText);
text.setText(userinfo.getUserId()+" ");
}
そして VoteActivity では:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vote);
userinfo=(UserInfo)getApplication();
Button back=(Button)findViewById(R.id.backButton);
back.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
userinfo.setUserId(-100);
Intent intent=new Intent(VoteActivity.this,MainActivity.class);
startActivity(intent);
}});
}
結果は次のとおりです。MainActivity が最初に実行されたとき、UserInfo のユーザー ID は 1354 です。また、VoteActivity が最初に実行されたとき、UserInfo のユーザー ID も 1354 です。ただし、VoteActivity から MainActivity に戻ると、ユーザー ID は 1354 のままで、-100 である必要があります。このアプリケーション コンテキストの使用の何が問題なのですか?