web-dev-qa-db-ja.com

Javaコード内のTextView値を変更するにはどうすればよいですか?

私はAndroidプログラムに取り組んでいます。ユーザーがボタンをクリックすると、いくつかの計算を行います。いくつかのTextViewオブジェクトのビューにある値を変更したいと思います。私のコードでそれを行う方法は?

22
SJS

この質問は this one の続きだと思います。

あなたは何をしようとしているのですか?ユーザーがボタンをクリックしたときに、TextViewオブジェクトのテキストを動的に変更しますか?理由がある場合は確かにそれを行うことができますが、テキストが静的である場合、通常は次のようにmain.xmlファイルで設定されます。

<TextView  
Android:id="@+id/rate"
Android:layout_width="fill_parent" 
Android:layout_height="wrap_content" 
Android:text="@string/rate"
/>

文字列「@ string/rate」は、次のようなstrings.xmlファイルのエントリを指します。

<string name="rate">Rate</string>

本当にこのテキストを後で変更したい場合は、Nikolayの例を使用して変更できます。main.xml内で定義されたIDを利用して、次のようにTextViewへの参照を取得します。


final TextView textViewToChange = (TextView) findViewById(R.id.rate);
textViewToChange.setText(
    "The new text that I'd like to display now that the user has pushed a button.");
43
McGlone

まず、Buttonを見つける必要があります。

Button mButton = (Button) findViewById(R.id.my_button);

その後、View.OnClickListenerを実装する必要があり、TextViewを見つけてsetTextメソッドを実行する必要があります。

mButton.setOnClickListener(new View.OnClickListener {
    public void onClick(View v) {
        final TextView mTextView = (TextView) findViewById(R.id.my_text_view);
        mTextView.setText("Some Text");
    }
});
14
Nikolay Moskvin