这是我的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类之内,因此没有封闭的实例。

10-06 06:51