2011-06-29 18 views
8

私はクラスごとに2つの文字列を含むクラスの配列を持っています。私はボタンが2つの異なる場所(画面の真ん中とそれのすぐ上の他の文章)でクリックされると、画面上にこれらの2つの文字列(文章)を表示しようとしています。Androidの画面に文字列のテキストを動的に表示

問題は、動的レイアウトではなく、XMLレイアウトファイルを使って画面上にテキストを表示する方法しか知りません。これをどうやってやりますか?私はすでにボタンと背景をXMLで行っています。

ありがとうございます!

答えて

13

ビューを動的に追加するにはaddView関数を使用します。

public MyActivity extends Activity { 
    private TextView myText = null; 

    @Override 
    public onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.id.mylayout); 

    LinearLayout lView = (LinearLayout)findViewById(R.id.mylinearlayout); 

    myText = new TextView(); 
    myText.setText("My Text"); 

    lView.addView(myText); 
} 

あなたはすべてのxmlファイルを使用しない場合:

//This is in the onCreate method 
LinearLayout lView = new LinearLayout(this); 

myText = new TextView(this); 
myText.setText("My Text"); 

lView.addView(myText); 

setContentView(lView); 
+0

ありがとうございますが、もう別の問題があります。私は新しいTextViewを動的に作成する方法を理解していますが、別の関数で参照する必要があります(この関数が呼び出されるたびにテキストが変更されます)。しかし、それがonCreate関数のときにはアクセスできません。私はそれをonCreate関数の外に置くことによってクラス変数にしようとしましたが、初期化時にエラーが発生します。また、私はテキストを変更するたびに "lView.addView(yaddayadda)"を行う必要がありますか?または、変更されたテキストを自動的に表示しますか?ありがとう! – lespommes

+0

TextViewをアクティビティのメンバーとして配置します。上記の私のコードを参照してください – Spidy

+0

あなたが助けることができる場合、今私は本当に近い、1つのmorrrrre事を近づいています:)今私はsentenceText.setText( "ブルーブルー")LogCatでNullPointerExceptionを得ています。私は宣言でそれをnullに設定しているので、これはありませんか? – lespommes

7

それはあなたがテキストを表示する方法を完全に明確ではありませんが、あなたが最も確かにトーストメッセージを使用することができます。

Toast.makeText(getApplicationContext(), "Sample Text", Toast.LENGTH_LONG).show(); 
関連する問題