Как создать объект Checkbox в Android Studio с собственным прослушивателем действий

Я уже сделал это на java, на котором объект JCheckbox имеет свой собственный прослушиватель действий и характеристики, вот пример кода в java.

private class checkBoxTask extends JCheckBox{

    checkBoxTask me;

    public checkBoxTask(){
        super();
        me = this;
        me.setText("task");
  }
}

Но в Android Studio я получаю конструктор «super (Context context)», который выдал ошибку при добавлении флажка в макет, потому что мне нужно передать ему значение аргумента, которое я не знаю, что.

class task extends androidx.appcompat.widget.AppCompatCheckBox {

    task me;

    public task(Context context) {
        super(context);
        me=this;
        me.setText("task");
    }
  }

FloatingActionButton newTask = findViewById(R.id.newTask);

    newTask.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {

            LinearLayout taskLayout = findViewById(R.id.taskLayout);
            taskLayout.addView(new task()); //<-- here is where the 
   code wants me to put an argument
            logValue++;
        }
    });

Я все еще новичок в этом, я хотел бы знать, что я могу сделать в этом конструкторе

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
114
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Похоже, вам нужно передать аргумент Context (https://developer.android.com/reference/android/content/Context).

Например, во фрагменте вы должны получить это так:

Context mContext; // global variable

@Override
public void onAttach(@NonNull Context context) {
    super.onAttach(context);
    mContext = context;
}

Или вы можете просто сделать это:

taskLayout.addView(new task(getContext));

Я уже пытался поставить «getContext», но это было не разрешено, вместо этого я попробовал getBaseContext и getApplicationContext, хотя флажок не появлялся в приложении, но занимал некоторое место при прокрутке. Что касается создания глобальной переменной, то тоже самое :(

JMVL 11.12.2020 10:09
Ответ принят как подходящий

Я понял это сейчас! спасибо за Этуаль.. Я просто передаю имя класса java в качестве контекста здесь.

public void onClick (представление просмотра) {

            LinearLayout taskLayout = findViewById(R.id.taskLayout);
            taskLayout.addView(new task(MainActivity.this));
            logValue++;
        }

Отлично, я рад, что у вас все заработало :) Если мой ответ помог, пожалуйста, примите его, чтобы он мог помочь другим в будущем :)

Etoile 12.12.2020 01:47

Другие вопросы по теме