Nano Hash - криптовалюты, майнинг, программирование

Проблема Android с редактированием текстовых представлений

В моем приложении при нажатии кнопки «Добавить контакт» открывается телефонная книга, а затем пользователь выбирает контакт, который отображается в представлении Edittext, а когда нажимается другая кнопка «Добавить больше контактов», отображается другое представление Edit-Text. верхняя, для которой я снова могу выбрать контакт из телефонной книги. Но проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы пользователь мог добавить только до 5 Edit Text . Я использую следующий код, но он приводит к сбою приложения. Пожалуйста помоги. А также я хочу, чтобы представления редактирования текста были недоступны для редактирования, для чего я пробовал editable=false, но он работает только для первого представления редактирования текста, а не для других представлений, которые пользователь добавляет впоследствии.

int id = 1;


             layoutLinear = (LinearLayout) findViewById(R.id.mLayout);
                btn_addmore_cntct = (Button) findViewById(R.id.baddmorecontacts);
                btn_addmore_cntct.setOnClickListener(OnClick());
                EditText editview = new EditText(this);
                editview.setText("Add more");
                editview.setEnabled(false);
                editview.setFocusable(false);

            }

            // implementing OnClickListener OnClick() method for "btn_addmore_cntct"
            // button
            private OnClickListener OnClick() {
                // TODO Auto-generated method stub
                // changing return type "null" to "new OnClickListner"
                return new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub



                        if(layoutLinear.getChildCount()>5){

                        }else{
                            final EditText tab = new EditText(getApplicationContext());
                            tab.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
                            tab.setId(id);
                            id++;
        layoutLinear.addView(tab,0);
    tab.requestFocus();
                        }

Ответы:


1

Вы можете использовать следующий способ.

int temp;

public void onCreate(Bundle savedinstance) {  
    super.onCreate(savedinstance);  
    setContentView(R.layout.yourlayout);
    temp=1;
    layoutLinear = (LinearLayout) findViewById(R.id.mLayout);
    btn_addmore_cntct = (Button) findViewById(R.id.baddmorecontacts);
    btn_addmore_cntct.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
      if(temp<=5){
               EditText tab = new EditText(getApplicationContext());
               tab.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));  
               tab.setEnabled(false);
               tab.setFocusable(false);
               layoutLinear.addView(tab);
               temp++;
       }else{
           //Print message to user Cant add more editText.

        }

        }
    });
}

Дайте мне знать, работает он или нет.

29.01.2014

2

Просто проверьте номер layoutLinear ребенка

if(layoutLinear.getChildCount()>5){

     //nothing to do
}else{
  //create new EditText and add to layoutLinear
}

используйте этот код, чтобы отключить EditText

edittext.setEnabled(false);
edittext.setFocusable(false);
29.01.2014
  • вот как я реализовал ваш код, но добавил только 1 Edit Text View. 29.01.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..