使用Java Toasts调用非静态方法

时间:2017-08-14 01:55:10

标签: java android toast

我是这个网站的新手,所以希望我能正确地表达我的问题。

我正在进行一些介绍性的Android编程。什么允许我调用Toast.makeText方法,但我不能立即对setGravity方法做同样的事情?为什么我可以引用第一个非静态方法,而不是下一个?我也是使用匿名内部类的新手。

mTrueButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(quizActivity.this, R.string.correct_toast, Toast.LENGTH_SHORT.show();
        Toast.setGravity(0, 0 ,0);
    }
});

3 个答案:

答案 0 :(得分:1)

您必须创建Toast类对象

public void ShowToast(String message){

    Toast t = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG);

    OR

    // Toast t = new Toast(getContext());  if custom view require
    t.setDuration(Toast.LENGTH_LONG);
    t.setText(message);

    t.setGravity(Gravity.RIGHT,0,0);
    t.show();

}

答案 1 :(得分:0)

Toast toast = Toast.makeText(getApplicationContext(),
     "text", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

makeText返回一个toast对象。

答案 2 :(得分:0)

可以使用类名访问静态方法。喜欢:template class FSM_state<eDECISION_TYPES, GameAI>;

因此,在Classname.staticMethod();课程中,我们有Toast方法和makeText()方法。但setGravity()方法是一种静态方法。因此,我们可以通过他们的类名访问它。如下所示:

makeText()

Toast.makeText() 方法不是静态方法。因此,我们无法通过使用其姓名来调用它。

如果必须调用setGravity()方法,则必须创建setGravity()类的对象。

Toast