Динамическая загрузка макета - PullRequest
0 голосов
/ 13 марта 2012

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

    private OnClickListener some_name = new OnClickListener(){
        public void onClick(View v) {
LinearLayout my_list_layout = (LinearLayout)findViewById(R.id.my_list_layout);
        my_list_layout.setOrientation(1);
        my_list_layout.setId(50);
        my_textview = new TextView[length];

        for(int i=0; i<length ; i++)
            {
                my_textview[i]= new TextView(getApplicationContext());
                my_textview[i].setText("sample text");
                my_textview[i].setId(i);

                if(i==0)
                    {
                        RelativeLayout.LayoutParams my_textviewparams = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
                        my_textviewparams.addRule(RelativeLayout.ALIGN_PARENT_TOP,my_list_layout.getId());
                        my_list_layout.addView(my_textview[i],my_textviewparams);
                    }
                else
                    {
                        RelativeLayout.LayoutParams my_textviewparams = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
                        my_textviewparams.addRule(RelativeLayout.BELOW,my_textview[i-1].getId());
                        my_list_layout.addView(my_textview[i],my_textviewparams);
                    }
    }
    }

и мой журнал ошибок

enter image description here

требуется быстрый ответ. кто-нибудь скажет мне, что я не так в кодировании, или какие изменения я должен сделать для моего требования?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Вы должны удалить эту строку:

my_list_layout.setId(50);

, потому что как только вы установите идентификатор на 50, и снова, когда вы нажмете Button, LinearLayout будет null, потому что вы звоните findViewById(R.id. my_list_layout); его идентификатор был изменен на 50.

Ура!

0 голосов
/ 14 марта 2012

Я получил ответ. Вот, когда я делал первый раз, когда щелкнул btn, дочернее представление будет динамически добавлено к моему родительскому представлению.

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

Я получил ошибку при удалении представлений от моего ребенка, теперь я устраняю ошибку, назначая некоторые переменные для определения щелчка, независимо от того, щелкает ли пользователь впервые или нет. Спасибо всем за ваше время здесь и за ваши ответы.

...