Каким должен быть параметр context для ContextCompat.getDrawable ()? - PullRequest
1 голос
/ 15 марта 2019

Я использую его в setOnClickListene, в соответствии с другим постом здесь

вот так:

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

параметр это неверно Спасибо

Ответы [ 3 ]

1 голос
/ 15 марта 2019

Вы можете использовать v.getContext(), чтобы получить Context, связанный с этим View.

0 голосов
/ 15 марта 2019

с использованием

this

в onclicklistener будет ссылаться на слушателя, которого вы должны использовать

MainActivity.this or getActivity()
0 голосов
/ 15 марта 2019

Если вы в классе с именем 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...