xpo*_*ort 5 java android kotlin
因为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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
而不是以下内容。
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();
}
}
Run Code Online (Sandbox Code Playgroud)
如何获取第一种方法this的上下文?Toast.makeText我熟悉c#,但不熟悉java和android。
如果ButtonHandler是一个非静态内部类(看起来是),您可以只使用MainActivity.this而不是this为了引用 a Context:
Toast.makeText(MainActivity.this, s, LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
如果ButtonHandler是静态的(所以MainActivity.this不起作用),您必须以某种方式将上下文对象传递给该方法。show()假设您从该方法调用onClick(),您可以利用View.getContext()并编写以下内容:
show(v.getContext(), s);
Run Code Online (Sandbox Code Playgroud)
private void show(Context c, String s)
{
Toast.makeText(c, s, LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4689 次 |
| 最近记录: |