Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ContextCompat.getDrawable()的上下文参数应该是什么?_Java_Android_Android Context - Fatal编程技术网

Java ContextCompat.getDrawable()的上下文参数应该是什么?

Java ContextCompat.getDrawable()的上下文参数应该是什么?,java,android,android-context,Java,Android,Android Context,根据另一篇文章,我在setonclicklisteneral中使用了它 像这样: start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { start.setBackground(ContextCompat.getDrawable( this,R.drawable.

根据另一篇文章,我在setonclicklisteneral中使用了它

像这样:

  start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                start.setBackground(ContextCompat.getDrawable( this,R.drawable.buttonstop)); 
参数这是错误的
谢谢

您可以使用
v.getContext()
获取与该
视图相关联的
上下文
,如果您在名为
MainActivity
的班级中,您可以使用:

在科特林: e、 g

在Java中: e、 g

使用

在onclicklistener中,将引用您应该使用的侦听器

MainActivity.this or getActivity()
button.setOnClickListener(object : View.OnClickListener {
    override fun onClick(v: View?) {
        Toast.makeText(this@MainActivity, "Hello!", Toast.LENGTH_SHORT).show();
    }
})

// Or in shorter way:
frame_layout.setOnClickListener {
    Toast.makeText(this@MainActivity, "Hello!", Toast.LENGTH_SHORT).show();
}
MainActivity.this
Button button = findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(A.this, "Hello!", Toast.LENGTH_SHORT).show();
    }
});

// Or in shorter way:
button.setOnClickListener(v -> Toast.makeText(MainActivity.this, "Hello!", Toast.LENGTH_SHORT).show());
this
MainActivity.this or getActivity()