Java 我是android开发的新手。我有个问题
在主页上,我点击图片,它将打开问题1。现在,我尝试使用问题1中的图像视图打开一个新的活动,即问题2。但它有一个错误:问题1不是一个封闭类Java 我是android开发的新手。我有个问题,java,android,Java,Android,在主页上,我点击图片,它将打开问题1。现在,我尝试使用问题1中的图像视图打开一个新的活动,即问题2。但它有一个错误:问题1不是一个封闭类 package com.example.adhdtracker; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class Question1 extends AppCompatActivity { @Override protecte
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);
}
}
以下是主要活动的代码
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);
}
}
您试图从MainActivity中问题1的上下文开始问题2。new Intent()的第一个参数应该是将启动下一个活动的封闭类的上下文。由于您是在MainActivity中定义此项,因此上下文应为MainActivity.this。对这个话题有一个很好的介绍
将new Intent()的第一个参数更改为“MainActivity.this”,或者将整个第二个OnClickListener移动到问题1中的视图。请了解Java和Javascript之间的区别。他们之间完全没有任何关系。我已经从你的问题中删除了标签。同样,标签应该用于有关Android Studio IDE的问题,而不是一般的Android问题。用标签代替。