Toast 使 Activity 在单击按钮时闪烁
Toast makes Activity blink on button click
我在屏幕顶部有按钮,在下方有相机预览,当我按下按钮时屏幕闪烁,但希望它显示吐司。在我注释掉 Toast.makeText() 后它停止闪烁,并且日志显示该按钮已被单击。
组件树(以防万一,我不想改):
代码:
public final class CaptureActivity extends AppCompatActivity {
Button button;
Context context;
...
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.capture);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "BUTTON clicked", Toast.LENGTH_LONG).show();
Log.d("BUTTON","CLICKED");
}
});
mPreview = (CameraSourcePreview) findViewById(R.id.preview);
mGraphicOverlay = (GraphicOverlay<Graphic>) findViewById(R.id.graphicOverlay);
你在哪里定义了Context
?
是null
。如果你放 getApplicationContext()
可能没问题
我觉得在活动中像下面这样吐司比较好:
Toast.makeText(this, "Message", Toast.LENGTH_SHORT).show();
我的意思是将 this
传递给 toast 的第一个参数。
我在屏幕顶部有按钮,在下方有相机预览,当我按下按钮时屏幕闪烁,但希望它显示吐司。在我注释掉 Toast.makeText() 后它停止闪烁,并且日志显示该按钮已被单击。
组件树(以防万一,我不想改):
代码:
public final class CaptureActivity extends AppCompatActivity {
Button button;
Context context;
...
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.capture);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "BUTTON clicked", Toast.LENGTH_LONG).show();
Log.d("BUTTON","CLICKED");
}
});
mPreview = (CameraSourcePreview) findViewById(R.id.preview);
mGraphicOverlay = (GraphicOverlay<Graphic>) findViewById(R.id.graphicOverlay);
你在哪里定义了Context
?
是null
。如果你放 getApplicationContext()
我觉得在活动中像下面这样吐司比较好:
Toast.makeText(this, "Message", Toast.LENGTH_SHORT).show();
我的意思是将 this
传递给 toast 的第一个参数。