我有两个不同的活动。 如果用户登录,则第一个调用菜单(base),但也有显示用户信息的方法。
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
UserLocalStore userLocalStore;
EditText etName, etAge, etUsername;
Button bLogout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername = (EditText) findViewById(R.id.etUsername);
etName = (EditText) findViewById(R.id.etName);
etAge = (EditText) findViewById(R.id.etAge);
bLogout = (Button) findViewById(R.id.bLogout);
bLogout.setOnClickListener(this);
userLocalStore = new UserLocalStore(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bLogout:
userLocalStore.clearUserData();
userLocalStore.setUserLoggedIn(false);
Intent loginIntent = new Intent(this, Login.class);
startActivity(loginIntent);
break;
}
}
@Override
protected void onStart() {
super.onStart();
if (authenticate() == true) {
startActivity(new Intent(this, Base.class));
}
}
private boolean authenticate() {
if (userLocalStore.getLoggedInUser() == null) {
Intent intent = new Intent(this, Login.class);
startActivity(intent);
return false;
}
return true;
}
public void displayUserDetails() {
User user = userLocalStore.getLoggedInUser();
etUsername.setText(user.username);
etName.setText(user.name);
etAge.setText(user.age + "");
}
}
第二项活动是菜单;此活动有一个名为“bUtente”的按钮,单击该按钮时必须显示用户信息。
public class Base extends Activity implements View.OnClickListener {
Button bDiario;
Button bUtente;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
bDiario = (Button) findViewById(R.id.bDiario);
bDiario.setOnClickListener(this);
bUtente = (Button) findViewById(R.id.bUtente);
bUtente.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bDiario:
startActivity(new Intent(this, Diary.class));
case R.id.bUtente:
MainActivity prova = new MainActivity();
prova.displayUserDetails();
}
}
}
当我点击“bUtente”按钮时,如何通过执行“displayUserDetails()”方法让我想起其他活动?
答案 0 :(得分:0)
MainActivity
的布局包含显示用户信息的View
。如果您在Base
,则该活动具有不同的布局,没有任何View
用于显示用户信息。您可以创建一个显示用户信息的Dialog
,也可以将View
添加到显示用户信息的Base
,或者您可以重新设置您的应用,以便您拥有另一个Activity
显示用户信息,MainActivity
和Base
可以启动Activity
以显示用户信息。
在任何情况下,您绝对不能使用Activity
关键字来MainActivity
new
实例化!只有Android可以实例化Activity
组件,因为框架在设置基础Context
时会这样做。它还跟踪这些组件并管理生命周期回调。