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

时间:2019-03-15 13:54:57

标签: java android android-context

我根据另一则帖子here

在setOnClickListener中使用它

像这样:

  start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                start.setBackground(ContextCompat.getDrawable( this,R.drawable.buttonstop)); 

参数这是错误的 谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用v.getContext()来获取与该Context关联的View

答案 1 :(得分:0)

如果您在名为MainActivity的课程中,可以使用:

在科特林:

this@MainActivity

例如

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();
}

在Java中:

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());

答案 2 :(得分:0)

使用

this

onclicklistener中的

将引用您应使用的监听器

MainActivity.this or getActivity()