这是我的ActivityHome.java
的代码。
我收到名为“Not Enclosing Class,ActivityLogin”的错误。我已经尝试了很多事情,并且还在网上搜索了,但是却什么也没得到。ActivityHome.java
由图像和进度条组成。进度条完成后,它将带您到ActivityLogin.java
页面,该页面由图像和一些文本组成。
问题在于,在ActivityHome.java
页面之后,它正在关闭应用程序或以永无休止的循环重复该页面。
package com.splashscreen;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.os.Handler;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ProgressBar;
import com.splashscreen.R;
public class ActivityHome extends AppCompatActivity {
ProgressBar splashProgress;
int SPLASH_TIME = 3000; //This is 3 seconds
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//This is additional feature, used to run a progress bar
splashProgress = findViewById(R.id.splashProgress);
playProgress();
//Code to start timer and take action after the timer ends
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//Do any action here. Now we are moving to next page
Intent mySuperIntent;
mySuperIntent = new Intent(ActivityLogin.this, ActivityHome.class);
startActivity(mySuperIntent);
//This 'finish()' is for exiting the app when back button pressed from Home page which is ActivityHome
finish();
}
}, SPLASH_TIME);
}
//Method to run progress bar for 5 seconds
private void playProgress() {
ObjectAnimator.ofInt(splashProgress, "progress", 100)
.setDuration(5000)
.start();
}
}
而且,这是我的ActivityLogin.java
的代码。package com.splashscreen;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.splashscreen.R;
public class ActivityLogin extends AppCompatActivity {
Button bt_click_me;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//Add all your codes here
bt_click_me = findViewById(R.id.bt_click_me);
bt_click_me.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ActivityLogin.this, "You clicked me. Thank you!", Toast.LENGTH_SHORT).show();
}
});
}
}
我不知道问题出在什么地方,但是我遇到了一个错误“不是一个封闭的类:ActivityLogin
;”。 最佳答案
Intent的参数在某种程度上是向后的。
第一个参数是上下文,它是指当前 Activity ,因此应为“主页”,第二个参数是要启动的 Activity 的类,因此应为“登录”。所以它应该看起来像这样:
mySuperIntent = new Intent(ActivityHome.this, ActivityLogin.class);
出现此错误的原因是:ActivityLogin.this
的意思是“包含当前代码块的ActivityLogin
实例”。但是此代码不在ActivityLogin类之内,因此没有封闭的实例。