我有两个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();
}
});
}
}
答案 0 :(得分:0)
您应该为第二个XML布局创建第二个活动,而不是尝试更改单个活动的布局。有关详细信息,请阅读Starting Another Activity。
答案 1 :(得分:-1)
要添加到sergiome的评论中:您应该初始化ok
和back
按钮 AFTER ,您已在此设置了第2个布局setContentView(R.layout.activity_reset_pas)
。这是修改后的代码。
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();
}
});
}
您的代码流程似乎很混乱,我甚至不知道如何向您解释问题。无论如何,尝试代码,看看它是否适合你。