按下后退按钮后,主要活动不会回来

时间:2018-05-08 06:52:01

标签: java android back-button

以下是我在我的应用程序中使用的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b1=(Button) findViewById(R.id.button);
    b2=(Button) findViewById(R.id.button2);
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView(R.layout.content_main2);
            b3=(PDFView) findViewById(R.id.p1);
            b3.fromAsset("1.pdf").load();
        }
    });

    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView(R.layout.content_main2);
            b4=(PDFView) findViewById(R.id.p1);
            b4.fromAsset("2.pdf").load();
        }
    });
}

当我试图按回按钮时,我的主要活动不会回来。我不知道为什么。

如何处理?

2 个答案:

答案 0 :(得分:1)

您的活动必须enum Foo { FOO_1 = "FOO_1", FOO_2 = "FOO_2", } function getEnumValues<TEnum, TKeys extends string>(e: { [key in TKeys]: TEnum }): TEnum[] { let keys = Object.keys(e) as Array<TKeys>; keys = keys.filter(key => e[key] !== undefined); return keys.map(key => e[key]); } const fooValues: Foo[] = getEnumValues(Foo); @Override。或者,如果您onBackPressed() finish()同时拨打此MainActivity(假设您正在通过MainActivity拨打电话),那么您可以&#34;不完成&#34 34;它和后退按钮将自动处理。

答案 1 :(得分:0)

您的Activity代码中有多处错误。不需要覆盖onBackPressed函数,因为这是默认行为。但是,您在setContentView中提到的活动中一次只能使用一个布局。

因此,在activity_main中获取pdf查看器布局,然后像下面那样加载pdf。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b1=(Button) findViewById(R.id.button);
    b2=(Button) findViewById(R.id.button2);
    b3=(PDFView) findViewById(R.id.p1);
    b4=(PDFView) findViewById(R.id.p1);

    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            b3.fromAsset("1.pdf").load();
        }
    });

    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            b4.fromAsset("2.pdf").load();
        }
    });
}