没有合适的maketext方法(ActivityName,String,int)

时间:2013-05-31 20:46:43

标签: java android android-activity

我为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经验

3 个答案:

答案 0 :(得分:2)

您需要将Context传递给makeText方法。这不是一个背景。它只是您AboutMeActivity类的参考,不是活动

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

public class AboutMeActivity extends Activity

Activity是Context的间接子类。那么你可以在Toast.makeText中使用它。但是要创建完整的Activity还有其他一些事情要做。所以我认为你更好地研究基本活动创造第一次

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要活动上下文才能显示吐司。我想你想在按钮点击上显示吐司,你会在你的布局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,请将活动上下文传递给非活动类的构造函数并使用它。