Android: создание динамического текста? - PullRequest
1 голос
/ 26 мая 2011

Допустим, у меня есть несколько строк в Java, которые я извлек из веб-скрипта. На самом деле это не имеет значения, это просто строки, хранящиеся в переменных.

Теперь мой вопрос заключается в том, как динамически добавлять их в приложение (чтобы показать пользователю) и, возможно, стилизовать их позицию из Java.

Чтобы провести аналогию, я хочу сделать что-то похожее на следующее в JavaScript:

var text = document.createElement('div'); 
text.appendChild(document.createTextNode("some string")); 
text.style.position = "whatever";
// etc, more styling
theDiv.appendChild(text); // add this new thing of text I created to the main application for the users to see

Я посмотрел в TextView, и, похоже, я его неправильно использую (я не понимаю конструктор, я полагаю?). Я хочу попробовать прямо сейчас, чтобы пользователь нажимал кнопку в моем приложении, а затем динамически генерировал некоторый текст. Вот что я пытался:

search_button = (Button) findViewById (R.id.backSearchButton);
        search_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {


            String test = new String("testing!"); 

            TextView test2 = new TextView(this);    //constructor is wrong, this line gives me an error

            test2.setText(test); 

            setContentView(test2); 

        }
    });

Как вы, вероятно, можете сказать, я не слишком разбираюсь в Java. Я просто пытаюсь провести параллели с тем, что я хотел бы сделать для веб-приложения.

Спасибо за помощь.

Ответы [ 3 ]

3 голосов
/ 27 мая 2011

Попробуйте:

TextView test2 = new TextView(ParentActivity.this);

замените "ParentActivity" на название вашей деятельности.

1 голос
/ 27 мая 2011

Я новичок в Java и Android, сам.Но я попытаюсь ответить на ваш вопрос.

  1. Вы должны решить, хотите ли вы создать TextView в XML или динамически в Java.Я думаю, что лучше создать его в XML в создателе макета.

  2. Не думаю, что вам следует использовать setContentView(test2).

  3. Если вы создаете TextView динамически, я не думаю, что вам нужно что-то помещать в его конструктор.Но вы должны добавить TextView к родительскому представлению.Другими словами, допустим, у вас есть LinearLayout где-то в макете.Вы должны сделать: linearLayout1.add(myTextView) или что-то еще.

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

1 голос
/ 27 мая 2011

ваш указатель this является ссылкой на OnClickListener, который вы создали анонимно. Вам нужен указатель на содержащую активность.

Возможно, вам лучше построить представление текста в onCreate вашей деятельности и просто установить текст из метода onClick

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...