-3

私はこのコードにいくつかの疑問を持っています。

public class MainActivity extends Activity { 
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText editText = (EditText) findViewById(R.id.edit_message); 
    String message = editText.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE, message); 
  1. EditTextでキャストを使用する理由
  2. putExtra(EXTRA_MESSAGE、message)とは何ですか?
  3. MY_MESSAGEがcom.example.myfirstapp.MESSAGEに割り当てられるのはなぜですか?およびcom.example.myfirstapp.MESSAGEとは何ですか?
4

2 に答える 2

2

1)findViewById()ビューを返すジェネリックメソッドであるため

2)インテントは、分離された通信のための柔軟な方法であり、送信するメッセージのようなものです(目的のアクションとオプションの追加データを指定します)。putExtra()情報をインテントに埋め込むことができる方法です

3)Intentの追加データは、Key-Valueストレージに基づいています。EXTRA_MESSAGEは、メッセージが保存されるキーです。インテントの受信者は、このキーからメッセージを取得できることを知っています。

4)「com.example.myfirstapp.MESSAGE」はこのキーの実際の値です。これは任意の値であり、インテントの送信者とその受信者がインテントを介して通信できるようにする必要があります。

于 2012-11-22T09:02:02.907 に答える
0

インテントエクストラは、データパラメータを他のアクティビティに渡すために使用されるため、新しいアクティビティを起動して文字列を新しいアクティビティに渡したい場合は、例のようにインテントに文字列を追加する必要があります。EXTRA_MESSAGEがキーであり、メッセージsiメッセージ

拡張データをインテントに追加します。名前にはパッケージプレフィックスを含める必要があります。たとえば、アプリcom.android.contactsは「com.android.contacts.ShowAll」のような名前を使用します。

パラメータnameパッケージプレフィックス付きの追加データの名前。value文字列データ値。

戻り値複数の呼び出しを単一のステートメントにチェーンするために、同じIntentオブジェクトを返します。

于 2012-11-22T09:04:07.060 に答える