1

onを作成setOnFocusChangeListenerしたEditTextので、文字列を取得してTextViewviaに追加しsetText()ます。ただし、別EditTextの.toString()setOnFocusListener

私のコードは次のとおりです。おそらく、混乱の少ない方法で説明します。

final TextView team1NameScore = (TextView) findViewById(R.id.team1NameScore);
final EditText team1Name = (EditText) findViewById(R.id.team1Name);

team1Name.setOnFocusChangeListener(new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            String team1NameString = team1Name.getText().toString();
            // Right here I need to make the above line public so I can use it later!
            if (!hasFocus) {
                team1NameScore.setText(team1NameString + "'s Score:");
            }
        }
    });

(5行目のコメントを読んでください)

私は多くのフォーカス リスナーを持っています...最後にユーザー用に生成する 1 つのプレビューにそれらを結合したいと思います (`setText(textview1 + textview2 + team1Name) を使用)

4

2 に答える 2

3

クラスの先頭で文字列をインスタンス変数として宣言します。

匿名内部クラスの親メソッドに対してローカルな変数にすることはできません。これは、リスナーがアクセスするには final である必要があるためです。つまり、その値を変更することはできません。ただし、グローバル インスタンス変数として宣言すると、クラス内の他のメソッドやリスナーと同様に、リスナーもそれにアクセスできます。

于 2013-02-12T21:41:47.630 に答える
3

フィールド変数を作成するだけです。

public class Example extends Activity {
    public String team1NameString = "";

次に、他の変数と同じように使用します。

public void onFocusChange(View v, boolean hasFocus) {
    team1NameString = team1Name.getText().toString();
于 2013-02-12T21:42:37.520 に答える