繁体   English   中英

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

[英]I am new in android development. I have a problem

在主页上,我单击图像,它将打开问题 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);
}
}
Intent i = new Intent(Question1.this, Question2.class);
startActivity(i);

您正在尝试从 MainActivity 中 Question1 的上下文开始 Question2。 new Intent() 的第一个参数应该是将启动下一个活动的封闭类的上下文。 由于您在 MainActivity 中定义 this,因此上下文应为 MainActivity.this。 有一个伟大的介绍这个话题在这里

要么将 new Intent() 的第一个参数更改为“MainActivity.this”,要么将整个第二个 OnClickListener 移动到 Question1 中的视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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