Я уже сделал это на 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++;
}
});
Я все еще новичок в этом, я хотел бы знать, что я могу сделать в этом конструкторе
Похоже, вам нужно передать аргумент 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));
Я понял это сейчас! спасибо за Этуаль.. Я просто передаю имя класса java в качестве контекста здесь.
public void onClick (представление просмотра) {
LinearLayout taskLayout = findViewById(R.id.taskLayout);
taskLayout.addView(new task(MainActivity.this));
logValue++;
}
Отлично, я рад, что у вас все заработало :) Если мой ответ помог, пожалуйста, примите его, чтобы он мог помочь другим в будущем :)
Я уже пытался поставить «getContext», но это было не разрешено, вместо этого я попробовал getBaseContext и getApplicationContext, хотя флажок не появлялся в приложении, но занимал некоторое место при прокрутке. Что касается создания глобальной переменной, то тоже самое :(