繁体   English   中英

两种不同的布局不适用于单个活动

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM