我为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经验
答案 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,请将活动上下文传递给非活动类的构造函数并使用它。