2011-05-26 347 views
1

比方說,我從Java腳本中檢索到了一些Java字符串。它並不重要,它們只是存儲在變量中的字符串。Android:動態文本創建?

現在我的問題是如何動態地將它們附加到應用程序(以顯示用戶),並可能從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

嘗試:

TextView test2 = new TextView(ParentActivity.this); 

替換「ParentActivity」用的名字你活動。

+0

謝謝,那部分幫助。 – JDS 2011-05-27 18:13:15

1

您的此指針是對您已匿名創建的OnClickListener的引用。你需要一個指向包含Activity的指針。

你可能會得到更好的構建在活動的onCreate您的文本視圖,並從您的onClick方法只設置文本

1

我是新來的Java和Android,我自己。但我會試一試你的問題。

  1. 您必須決定是否要在XML中創建TextView或以Java動態創建TextView。我認爲在佈局創建者中用XML創建它會更好。我不認爲你應該使用setContentView(test2)

  2. 如果你動態創建一個TextView,我不認爲你需要在它的構造函數中放置任何東西。但是您必須將TextView添加到父視圖。換句話說,假設您的佈局中有一個LinearLayout。你必須這樣做:linearLayout1.add(myTextView)什麼的。

其餘的代碼看起來很好。但是,再一次,我自己還是新手。讓我知道這個答案是多麼有幫助,如果它不夠,我會嘗試谷歌搜索更多的幫助。

+0

嘿,非常感謝,那就是我一直在尋找的。我現在所做的是 main_layout =(LinearLayout)findViewById(R.id.main_layout); 其中「main_layout」是XML中我的LinearLayout的ID。然後我可以做這樣的事情: 最終TextView測試=新的TextView(this); newline.setText(「more text!」); main_layout.addView(testing); 這與我在web腳本中如何將html元素添加到div元素非常相似。現在我需要做的就是弄清楚如何設計我追加的這些東西。再次感謝。 – JDS 2011-05-27 18:53:20