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 的第一个参数。