web-dev-qa-db-ja.com

テキストをAndroid TextViewに設定できないのはなぜですか?

TextViewにテキストを設定すると問題が発生します。

TextView Android:editable = "true".

私の.Javaでは、これはうまくいくはずです:

 text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");

しかし、そうではありません。誰がここで何が悪いのか教えてもらえますか?

18
Christoph

Javaクラスで、「EditText」タイプを「TextView」に設定します。TextViewlayout.xmlファイル

17
Noman

代わりに、コードは次のようになります。

TextView text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("test");
35
Arnab C.

以下のコードを使用するよりも、アクティビティのいずれかにテキストを設定するには...次の手順を1つずつ実行します。

1.宣言

    private TextView event_post;

2.バインドする

    event_post = (TextView) findViewById(R.id.text_post);

3.SetText in

    event_post.setText(event_post_count);
5
patel135

このようにしてみてください:

TextView text=(TextView)findViewById(R.id.textviewID);
text.setText("Text");

これの代わりに:

text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");
4
Bunny

私は同様の問題を抱えていましたが、テキストを設定しようとするとプログラムがクラッシュしました。 AsyncTaskを拡張するクラス内からテキスト値を設定しようとしていましたが、それが問題の原因でした。

それを解決するために、setTextをonPostExecuteメソッドに移動しました

protected void onPostExecute(Void result) {
    super.onPostExecute(result);

    TextView text = (TextView) findViewById(R.id.errorsToday);
    text.setText("new string value");
}
1
Scott Bentley

または、この方法で行うことができます:

((TextView)findViewById(R.id.this_is_the_id_of_textview)).setText("Test");
1
Hamedz

テキストを、横向きの場合など、現金にあるアクティビティの別のインスタンスでレンダリングされたフィールドに設定します。その後、何らかの理由で再作成されました。文字列をSharedPreferencesに保存し、mOutputTextの場合、recreate()を使用してアクティビティを強制的に再起動することにより、通常とは異なる方法でテキストを設定する必要があります。

@Override
protected void onResume() {
    super.onResume();
    String sLcl=mPreferences.getString("response","");
    if(!sLcl.isEmpty()){
        mOutputText.setText(sLcl);
        mPreferences.edit().putString("response","").commit();
    }
}

private void changeText() {
    mPreferences.edit().putString("response",responseText).commit();
    recreate();
}
@Override
protected void onActivityResult(
        int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case CAPTURE_MEDIA_RESULT_CODE:
            if (null == data || null == data.getData()) {
               showMessage("Sorry. You didn't save any video");
            } else {
                videoUri = data.getData();
                mProgress = new ProgressDialog(this);
                mProgress.setMessage("Uploading onYoutube ...");

                authorizeIt();// SAY YOU CALL THE changeText() at the end of this method
            }
            break;
    }
}
0
CodeToLife

XMLでは、Textviewを使用していましたが、Java TextViewではなくEditTextを使用したコードで。TextViewに変更する場合は、TextViewオブジェクトにTextを設定できます。

text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");

うまくいくことを願っています。

0