Sebassstian Ответов: 1

Я хочу создать флажок при нажатии кнопки


I want to make it so every time someone type something in the editText and click the button the text comes up which it does it my code but I also want to add a checkbox next to it. How Can I add the checkbox every time the button is pressed. 

I would also want to make it possible to add more than 1 right now it overwrites itself when you make 2.


final TextView textViewPrint;
  
Button btn_print;

final EditText editTextType;
     
final CheckBox checkbox;


        textViewPrint = findViewById(R.id.print_text);
        btn_print =findViewById(R.id.button_add);
         editTextType = findViewById(R.id.test_textEdit);
        checkbox = findViewById(R.id.checkBox);


        
         btn_print.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                textViewPrint.setText(editTextType.getText().toString()) ;


                editTextType.setText("");
            }
        });


Что я уже пробовал:

Я пробовал искать ответы в google / stack overflow. Я новичок, поэтому мне не хватает многих базовых понятий.

David Crow

checkbox = findViewById(R.id.checkBox);

Если это возвращает ненулевое значение, то я предполагаю, что у вас уже есть Checkbox виджет на макете. если да, то что именно вы хотите сделать с флажком?

Sebassstian

Я хочу создать флажок onClick, поэтому, когда кнопка нажата, я хочу, чтобы она создала флажок.

David Crow

Вы пробовали что-то вроде:

Checkbox cb = new Checkbox();
cb.setId(###); // optional


Если вы хотите отобразить его, вам также нужно добавить его в представление.

Просто из любопытства, зачем создавать этот элемент управления во время выполнения, а не в файле макета?

Sebassstian

Я хочу составить список дел, чтобы, когда пользователь наберет, например, play piano в editText, мое приложение добавило play piano и флажок, который они могут нажать, чтобы закончить его. У меня также возникли проблемы с тем, чтобы добавить более 1 задачи. Мой текст должен быть перезаписан последним. Например, если я написал "играй на пианино" и добавил его, то иди в спортзал. Тот, что в спортзале, перепишет предыдущий. Я не за компьютером прямо сейчас я собираюсь попробовать если он работает завтра большое спасибо

David Crow

Вам нужно поставить ListView в основном макете. Создайте макет "строки" для каждой строки в этом разделе. ListView. В этой строке макета поставьте CheckBox контроль и TextView контроль. Создайте для него пользовательский адаптер (например, производный от ArrayAdapter). В переходнике getView() метод, раздуйте макет строки, а затем назначьте значения элементам управления checkbox и text. В доме пуговицы onClick() обработчик, просто добавьте новый элемент в пользовательский адаптер, а затем вызовите адаптер notifyDataSetChanged() метод для того, чтобы он появился в списке.

Это очень распространенная вещь, поэтому более подробные примеры можно найти в сети в изобилии.

1 Ответов

Рейтинг:
1

Pratishkumar Kushwaha

LinearLayout l1 = (LinearLayout)findViewById(R.id.linearlayout);
btn_print.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
          CheckBox checkbox = new CheckBox(this);
        checkbox.setId(0);

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);

        l1.addView(checkbox,params);
    }
});


Sebassstian

Здравствуйте, спасибо за ответ. У меня есть вопрос, который я, кажется, не могу заставить его работать. У меня нет идентификатора linearlayout, и я хотел бы спросить, из какого элемента я должен выбрать идентификатор?

Pratishkumar Kushwaha

Вы можете изменить идентификатор флажка в программировании throw и этот идентификатор не представляет собой всю программу и вы можете получить доступ к приведенному ниже методу
Флажок c1 = (флажок)findViewById(0);
С1.то gettext();//этот метод, чтобы получить доступ к данным динамического доступа к данным бро
хорошая покупка...