6

私はTextViewアンドロイドでテキストを設定する問題に直面しています私のコードは:

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button) findViewById(R.id.button1);
        final TextView text = (TextView) findViewById(R.id.textView1);
        final EditText input = (EditText) findViewById(R.id.editText1);
        final String string = input.getText();
        button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                text.setText(string);                   
            }
        });
    }
}

私が書いたら

    final Editable string = input.getText();

その後、それは動作します..... !!!!

EditText今、私はこのように次のデータを送信したいと思いますActivity

public class Main extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button) findViewById(R.id.button1);
        final TextView text = (TextView) findViewById(R.id.textView1);
        final EditText input = (EditText) findViewById(R.id.editText1);
        final Editable string = input.getText();
        button.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Intent intent = new Intent(Main.this, Second.class);
                intent.putExtra("thetext", string);
                startActivity(intent);
            }
        });
    }
}

そしてSecond.javaクラスでは、私StringExtraはこのようになります:

public class Second extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        TextView text = (TextView) findViewById(R.id.textView2);
        String string = getIntent().getExtras().getString("thetext", "not found");
        text.setText(string); /// Here the text is not shown but the default message "not found" is set to `TextView`
    }
}

開発を進める方法を教えてください。

4

6 に答える 6

5

Editable問題は、 ではなくを送信していることですString。これを試して:

final String string = input.getText().toString();
于 2012-05-01T14:39:45.640 に答える
3

問題は、文字列ではなく、実際に「編集可能」をインテントに入れていることだと思います。近いとはいえ、それらは同じものではありません。Editable を toString() して String オブジェクトを取得し、それをインテントに入れると、getString を使用して元に戻すことができるはずです。

于 2012-05-01T14:39:29.093 に答える
1

次のようなことを試してください:

public class Main extends Activity {
    EditText input;

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

        TextView text = (TextView) findViewById(R.id.textView1);
        input = (EditText) findViewById(R.id.editText1);

        Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(Main.this, Second.class);
                intent.putExtra("thetext", input.getText().toString());
                startActivity(intent);
            }
        });
    }
}

(ヒント: コードを投稿する最も簡単な方法は、コードを貼り付けて選択し、crtl+k を使用してインデント/フォーマットすることです。)

于 2012-05-01T14:41:10.550 に答える
0

androidのドキュメントによると、extrasに入力される文字列の名前には、パッケージプレフィックスを含める必要があります...つまりsom.arshay.dev.thetext次に、getExtras()はバンドルを返しますが、これは追加したものではありません。あなたが必要です getStringExtra( name )

于 2012-05-01T14:43:32.507 に答える
0

この行で使用

final String string = input.getText().toString(); 

それ以外の

final String string = input.getText();
于 2012-05-01T14:47:00.533 に答える