0

我为我的第一个(实际上是用于测试)Android 应用程序创建了以下活动。但这给我带来了一个错误,我找不到如何解决,所以请你在这里帮我一点忙吗?

package com.app.myapplication;

import android.view.View;
import android.widget.Toast;


public class AboutMeActivity {
    public void showAboutMessage(View v) {
        Toast.makeText(this, "My name is Kostas!", Toast.LENGTH_LONG).show();
    }
}

PS:考虑这是我的第一个 android 应用程序,虽然我有一些 Java 经验

4

3 回答 3

2

您需要将 a 传递Context给该makeText方法。这不是上下文。它只是您的AboutMeActivity课程的参考,不是活动

可能是您正在尝试创建一个Activity. 如果是这样,那么你必须Activity像这样扩展类

public class AboutMeActivity extends Activity

Activity 是 的间接子类Context。那么你可以在Toast.makeText. 但是还有其他一些事情要实现来创建一个完整的 Activity。所以我认为你最好先学习基本的活动创建

于 2013-05-31T20:49:23.627 回答
1

Toast有两个名为 的方法makeText(),它们都将 Context 作为第一个参数。AboutMeActivity不是上下文(我猜你希望它扩展 Activity,但它没有),所以代码无法编译。

于 2013-05-31T20:50:36.477 回答
0

您需要活动上下文来显示 toast。我猜您想在单击按钮时显示 toast,并且您会在布局 xml 中为按钮定义属性 android:onClick="showAboutMessage"。你的班级必须扩展活动。您还需要将布局的内容设置为您的活动。

public class AboutMeActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // set the layout to the activity
 } 
public void showAboutMessage(View v) {
    Toast.makeText(AboutActivity.this, "My name is Kostas!", Toast.LENGTH_LONG).show();
}
}

如果要在非活动类中显示 toast,请将活动上下文传递给非活动类的构造函数并使用它。

于 2013-05-31T20:54:48.310 回答