EditTextからテキストを表示するにはどうすればよいですか?

さて、私はコードを使用しています:

EditText editText = (EditText) findViewById(R.id.editText1);
String value = editText.getText().toString();

EditTextからテキストを取得するにはどうすればTextViewで表示することができますか?また、TextViewが別のアクティビティにある場合、コードはどのように変更されますか?

このような:

enter image description here

さて、私はこれをやってみました:

    EditText input = (EditText) findViewById(R.id.editText1);
    String thing = input.getText().toString();

    TextView display = (TextView) findViewById(R.id.textView1);
    String text = display.getText().toString();

    text.setText(thing);

しかし、このメソッドのsetText(String)型はString型では定義されていません。

text.setText(thing);
0
ユーザーがテキストを変更するたびにレイアウトを更新する巧妙なアイデアではありません...テキストの変更は、入力時にかなり速く発射することができますが、特にバックスペースで文字を削除する場合にも発生します。ユーザーがレイアウトを更新する準備が整ったときに更新するボタンを持つ方がよい。
追加された 著者 Ozzy,

6 答え

たとえば、テキスト変更リスナーをインストールする

See e.g. here for how to add it to the edit text. Instead of rendering you would then do textField.setText(text);

1
追加された

これを行うには、編集ビューからテキストを取得し、テキストビューを設定する必要があります: これはあらかじめ定義されたゲッターとセッターを使ったケーキです。

EditTextの場合と同様にテキストビューを展開し、.setTextメソッドを使用する必要があります

テキストビューが新しいアクティビティにある場合は、インテントの情報を送信する必要があります。

startActivity(new Intent(AndroidActivity.this, Activity2.class).putExtra("user", user.getText().toString()));

あなたの新しい活動では、

String s = getIntent().getStringExtra("user")
1
追加された

質問1に答える:

テキストビューに目的のテキストを表示するには、 TextView.setText(CharSequence text、TextView.BufferType type)を使用します。

0
追加された

この特定のエラーの使用を解決するため

display.setText(thing);

現在、文字列を別の文字列に設定していますが、文字列のsettextとして使用できる機能はありません。 また、これをオンザフライで実行したい場合(ユーザーがテキストを入力しているときにtextviewを更新する)、テキストウォッチャーを使用します。

0
追加された
ユーザーがreturn/enterを押すと、どうやって更新することができますか?
追加された 著者 Cole,

どのようにしてTextViewで表示するのですか?

入力 EditText 表示(あなたの例で使用されている TextView >あなたの例で使用されています)キーボードの Enterキーを押すたびに(別の回答のコメントでこれをリクエストしていました)

   //get reference to the TextView
    final TextView display = (TextView) findViewById(R.id.textView1);

   //get reference to EditText and set listener to update TextView
    final EditText input = (EditText) findViewById(R.id.editText1);
    input.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER)) {
                  display.setText(input.getText());
                  return true;
                }
                return false;
        }
    });

上記のコードは単一のアクティビティの内部にあります。

また、TextViewが別のアクティビティにある場合、コードはどのように変更されますか?

表示(例の TextView )が別のアクティビティにある場合は、入力の値を保存するあなたの例で EditText )を SharedPreference を開き、表示アクティビティの onResume の値を読み込みます。

// Activity with display
public class DisplayActivity extends Activity {
    private TextView display;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       //get reference to the TextView
        display = (TextView) findViewById(R.id.textView1);
    }

    public void onResume() {
        super.onResume();
        String inputsValue = getSharedPreferences("myprefs", 0)
                .getString("input", "" /** Default value*/);

        display.setText(inputsValue);
    }
}

// Activity with input
public class InputActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       //get reference to EditText and store in SharedPreference
        final EditText input = (EditText) findViewById(R.id.editText1);
        input.setOnKeyListener(new OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {
                      getSharedPreferences("myprefs", 0).edit()
                          .putString("input", input.getText().toString()).commit();
                      return true;
                }
                return false;
            }
        });
    }
}

あなたは、コード内のすべてのハードコードされた文字列リテラルをコード定数に置き換える必要があります

0
追加された
ありがとうございました!それはそれをした!
追加された 著者 Cole,

edittextのイベントハンドラを定義します。テキストの変更によってその内容が抽出され、display.setText()が実行されます。

私は助けることを願って

0
追加された