【问题标题】:Android - Activity cannot be resolved to a typeAndroid - 无法将活动解析为类型
【发布时间】:2026-02-24 15:05:02
【问题描述】:

我是 android 新手,使用 Eclipse(基本 java 和 Netbeans 的背景)

我只是在学习一个基本的游戏教程:

http://www.javacodegeeks.com/

并且出现以下错误:

Activity 无法解析为类型。

((Activity)getContext()).finish();

上面是它有错误的代码,我试过在谷歌上查看,这里也没有真正的帮助,或者至少我理解。

这是全班:

package Sketchy.Game.WarSoNawty;

import android.util.Log;
import android.content.Context;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainGamePanel extends SurfaceView implements
    SurfaceHolder.Callback {

private static final String TAG = MainGamePanel.class.getSimpleName();

private MainThread thread;

public MainGamePanel(Context context) {
    super(context);
    //adding the callback (this) to the surface holder to intercept events
    getHolder().addCallback(this);

    //create game loop
    thread = new MainThread(getHolder(), this);

    //make the GamePanel focusable so it can handle events
    setFocusable(true);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    thread.setRunning(true);
    thread.start();

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    boolean retry = true;
    while (retry) {
        try {
            thread.join();
            retry = false;
    }
    catch (InterruptedException e) {
        //try again shutting down the thread
    }
    }
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        if(event.getY() > getHeight() - 50) {
            thread.setRunning(false);
            ((Activity)getContext()).finish();
        }
        else {
            Log.d(TAG, "Coords: x=" +event.getX() + ",y=" + event.getY());
        }
    }
    return super.onTouchEvent(event);
}

@Override
protected void onDraw(Canvas canvas) {

}

}

我读到这可能意味着我的 Manifest 不正确,下面是它的 XML。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="Sketchy.Game.WarSoNawty"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".WarSoNawty"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

提前感谢您的帮助!

【问题讨论】:

  • 我认为你应该导入 Activity (import android.app.Activity)

标签: java android types


【解决方案1】:

好像你还没有导入Activity 类。将此行添加到您的导入语句(就在 class 声明上方):

import android.app.Activity;

【讨论】:

  • 没有问题,很高兴我能帮上忙。 :)