[英]Two different layouts are not working on single activity
我有一个活动的两个xml布局,我用setContentView()来调用它们,但是当我调用第二个视图时,它调用了,但是没有用。 这是代码:当我单击fok按钮时,将显示第二种布局,但是其上的按钮不起作用。 请帮忙
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_reset_pas);
setContentView(R.layout.forpasrest);
fok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
fok.setBackgroundColor(Color.rgb(220, 215, 255));
setContentView(R.layout.activity_reset_pas);
flag=false;
}
});
fback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
fback.setBackgroundColor(Color.rgb(220, 215, 255));
Intent intent = new Intent(ResetPasActivity.this,SignInActivity.class);
startActivity(intent);
finish();
}
});
if(flag==false){
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
}
});
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
back.setBackgroundColor(Color.rgb(220, 215, 255));
Intent intent = new Intent(ResetPasActivity.this,SignInActivity.class);
startActivity(intent);
finish();
}
});
}
}
您应该为第二个XML布局创建第二个活动,而不是尝试更改单个活动的布局。 有关如何执行此操作的详细信息,请阅读“ 开始另一个活动” 。
要添加到sergiome的注释中:在设置了第二个布局setContentView(R.layout.activity_reset_pas)
之后,应该初始化ok
按钮和back
按钮。 这是修改后的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_reset_pas);
setContentView(R.layout.forpasrest);
fok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buildSecondLayout();
}
});
fback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
fback.setBackgroundColor(Color.rgb(220, 215, 255));
Intent intent = new Intent(ResetPasActivity.this,SignInActivity.class);
startActivity(intent);
finish();
}
});
}
private void buildSecondLayout() {
fok.setBackgroundColor(Color.rgb(220, 215, 255));
setContentView(R.layout.activity_reset_pas);
final Button ok = (Button)findViewById(R.id.yourButtonIdForOk);
final Button back = (Button)findViewById(R.id.yourButtonIdForBack);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), result,
Toast.LENGTH_SHORT).show();
}
});
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
back.setBackgroundColor(Color.rgb(220, 215, 255));
Intent intent = new Intent(ResetPasActivity.this,
SignInActivity.class);
startActivity(intent);
finish();
}
});
}
您的代码流程似乎很混乱,我什至不知道如何向您解释问题。 无论如何,请尝试代码以查看它是否适合您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.