我是android开发的新手。我有个问题

时间:2019-12-24 04:48:14

标签: java android

从主页上单击图像,它将打开问题1。现在,我尝试使用问题1中的图像视图打开一个新的活动,即问题2。但是它有一个错误:问题1是不是封闭的类。

这是主要活动的代码。

package com.example.adhdtracker;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

private ImageView b;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //button video to video page
    b = (ImageView) findViewById(R.id.btnPlayVideo);
    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent i = new Intent(MainActivity.this, VideoPage.class);
            startActivity(i);

        }
    });


    //button start test to question1
    b = (ImageView) findViewById(R.id.btnStartTest);
    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent i = new Intent(MainActivity.this, Question1.class);
            startActivity(i);

        }
    });



    //button question 1 ke question 2
    b = (ImageView) findViewById(R.id.btn1);
    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent i = new Intent(Question1.this, Question2.class);
            startActivity(i);

        }
    });}}

这是问题1.java。它说这不是一个封闭的类。

package com.example.adhdtracker;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class Question1 extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_question1);
}
}

这是问题2.java

package com.example.adhdtracker;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class Question2 extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_question2);
}
}

1 个答案:

答案 0 :(得分:0)

Intent i = new Intent(Question1.this, Question2.class);
startActivity(i);

您正在尝试从MainActivity中的Question1上下文启动Question2。 new Intent()的第一个参数应该是将启动下一个活动的封闭类的上下文。由于您是在MainActivity中定义的,因此上下文应为MainActivity.this。该主题here的详细介绍。

将new Intent()的第一个参数更改为“ MainActivity.this”,或将整个第二个OnClickListener移至Question1内的视图。