gpt4 book ai didi

java - 如何获取嵌套类中的上下文?

转载 作者:行者123 更新时间:2023-11-29 06:50:49 24 4
gpt4 key购买 nike

因为 show 只在嵌套类 ButtonHandler 内部需要,所以我想执行以下操作

public class MainActivity extends AppCompatActivity
{
private class ButtonHandler implements OnClickListener
{
@Override
public void onClick(View view)
{
// removed for simplicity
}
private void show(String s)
{
//Toast.makeText(this, s, LENGTH_LONG).show();
}
}

}

而不是以下内容。

public class MainActivity extends AppCompatActivity
{
private class ButtonHandler implements OnClickListener
{
@Override
public void onClick(View view)
{
// removed for simplicity
}
}

private void show(String s)
{
Toast.makeText(this, s, LENGTH_LONG).show();
}

}

问题

如何在第一种方法中获取 Toast.makeText 的上下文 this?我熟悉 c# 但不熟悉 java 和 android。

最佳答案

如果 ButtonHandler 是一个非静态内部类(它看起来是),您可以只使用 MainActivity.this 而不是 this 为了获得对 Context 的引用:

Toast.makeText(MainActivity.this, s, LENGTH_LONG).show();

如果 ButtonHandler 是静态的(所以 MainActivity.this 不起作用),您必须以某种方式将上下文对象传递给该方法。假设您从 onClick() 方法调用 show(),您可以利用 View.getContext() 并编写:

show(v.getContext(), s);
private void show(Context c, String s)
{
Toast.makeText(c, s, LENGTH_LONG).show();
}

关于java - 如何获取嵌套类中的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48952949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com