找不到符号变量imageView2

时间:2019-01-07 00:45:31

标签: android-studio

我只是从Android Studio开始。我从网络上获得了一些有关如何将启动屏幕添加到我的应用程序的代码,但是它存在编译错误。我可以帮忙。

错误是:

错误。找不到符号变量imageView2

错误。找不到符号变量s_img

错误。找不到符号变量s_image_black

错误。找不到符号变量s_image_black

我知道这是由于我缺乏知识,但是我只是开始尝试使用此示例进行学习。任何帮助将非常感激。 干杯
保罗

get_fun_env()

下面的activity_splash屏幕

package org.quaestio.kotlinconvertedwebview;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.ImageView;

import org.quaestio.kotlinconvertedwebview.MainActivity;

import java.util.Random;


public class Splashscreen extends Activity {

Thread splashTread;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splashscreen);
    imageView = (ImageView)findViewById(R.id.imageView2);
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    int[] ids = new int[]{R.drawable.s_img,R.drawable.s_image_black, R.drawable.s_image_black2};
    Random randomGenerator = new Random();
    int r= randomGenerator.nextInt(ids.length);
    this.imageView.setImageDrawable(getResources().getDrawable(ids[r]));

    splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                // Splash screen pause time
                while (waited < 3500) {
                    sleep(100);
                    waited += 100;
                }
                Intent intent = new Intent(Splashscreen.this,
                        MainActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                startActivity(intent);
                Splashscreen.this.finish();
            } catch (InterruptedException e) {
                // do nothing
            } finally {
                Splashscreen.this.finish();
            }

        }
    };
    splashTread.start();
}

}

2 个答案:

答案 0 :(得分:0)

问题是您要设置一个与XML文件不对应的ID。例如imageView = (ImageView)findViewById(R.id.imageView2);,您需要更改imageView2并将其XML imageview ID设置为“ splash”。对于pthers错误,您需要检查drawable文件夹中的文件。

希望这很有帮助

答案 1 :(得分:0)

您的xml中的ImageView的ID为splash,因此在您的代码中,而不是:

imageView = (ImageView)findViewById(R.id.imageView2);

你应该做

imageView = (ImageView)findViewById(R.id.splash);

此外,这一行:

int[] ids = new int[]{R.drawable.s_img, R.drawable.s_image_black, R.drawable.s_image_black2};

假定您的drawable文件夹中存在所有这些可绘制对象:

s_img, s_image_black, s_image_black2

但是显然它们不是,所以您必须复制或创建它们并将它们放在drawable文件夹中。