@Koshkasobaka

Почему ListView не реагирует на нажатие кнопки?

В консоли видно, что names изменяется, а на эмуляторе ничего не происходит
public class MainActivity extends Activity {
    private int count = 1;
    private Button addOne;
    String[] names = {"0", "00", "000"};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView lvPyramid = (ListView) findViewById(R.id.lvPyramid);


        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
        lvPyramid.setAdapter(adapter);

        addOne = findViewById(R.id.b_addOne);

        View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                for (String name : names) {
                    String number = name.substring(0, 1);
                    String nextNumber = Integer.toString(count);
                    name = name.replace(number, nextNumber);
                }
                count++;
                if (count == 10) count = 0;
            }
        };

        addOne.setOnClickListener(onClickListener);

    }
}
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
В консоли видно, что names изменяется

Неправда, этот код ничего не изменяет. Только зачем-то переприсваивает локальную переменную. Начни изменять список. Затем вызывай метод обновления адаптера(notifyDatasetChanged). Затем выкинь листвью и начни уже использовать RecyclerView.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы