意味 - media intent android




Androidのインテントから余分なデータを取得するにはどうすればよいですか? (10)

あるアクティビティ(意図)から別のアクティビティ(意図)にデータを送信するにはどうすればよいですか?

私はこのコードを使ってデータを送信します:

Intent i=new Intent(context,SendMessage.class);
i.putExtra("id", user.getUserAccountId()+"");
i.putExtra("name", user.getUserFullName());
context.startActivity(i);

これは、mContextをActivtyの名前に変更する必要があるアクティビティと、mContextをgetActivity()に変更する必要があるフラグメントのためのアダプタ用です。

 public static ArrayList<String> tags_array ;// static array list if you want to pass array data

      public void sendDataBundle(){
            tags_array = new ArrayList();
            tags_array.add("hashtag");//few array data
            tags_array.add("selling");
            tags_array.add("cityname");
            tags_array.add("more");
            tags_array.add("mobile");
            tags_array.add("android");
            tags_array.add("dress");
            Intent su = new Intent(mContext, ViewItemActivity.class);
            Bundle bun1 = new Bundle();
            bun1.putString("product_title","My Product Titile");
            bun1.putString("product_description", "My Product Discription");
            bun1.putString("category", "Product Category");
            bun1.putStringArrayList("hashtag", tags_array);//to pass array list 
            su.putExtras(bun1);
            mContext.startActivity(su);
        }

インテントからさまざまなタイプのエクストラを得る

インテントからデータにアクセスするには、2つのことを知っておく必要があります。

  • キー
  • データのデータ型。

異なる種類のデータ型を抽出するために、インテントクラスにはさまざまなメソッドがあります。 それはこのように見える

getIntent()。XXXX(KEY)またはintent.XXX(KEY)。


したがって、あなたがotherActivityで設定した変数のデータ型を知っていれば、それぞれのメソッドを使うことができます。

アクティビティのインテントから文字列を取得する例

String profileName = getIntent().getStringExtra("SomeKey");

異なるdataTypeのメソッドのさまざまなバリエーションのリスト

利用可能な方法のリストは、公式文書のIntentで見ることができます。


FragmentActivityで使用されている場合は、これを試してください:

最初のページはFragmentActivityを拡張します

Intent Tabdetail = new Intent(getApplicationContext(), ReceivePage.class);
Tabdetail.putExtra("Marker", marker.getTitle().toString());
startActivity(Tabdetail);

このフラグメントでは、 getActivity()最初に呼び出すだけで済みます。

2番目のページはFragment

String receive = getActivity().getIntent().getExtras().getString("name");

このようにすることもできます
//値をインテントに入れる

    Intent in = new Intent(MainActivity.this, Booked.class);
    in.putExtra("filter", "Booked");
    startActivity(in);

//インテントから値を取得する

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    String filter = bundle.getString("filter");

まず、 getIntent()メソッドを使用してアクティビティを開始したインテントを取得します。

Intent intent = getIntent();

余分なデータが文字列として表される場合は、 intent.getStringExtra(String name)メソッドを使用できます。 あなたの場合:

String id = intent.getStringExtra("id");
String name = intent.getStringExtra("name");

オブジェクトやスティング、または任意のタイプのデータであっても、インテントから任意のタイプの余分なデータを取得できます。

Bundle extra = getIntent().getExtras();
if (extra != null){
    String str1 = (String) extra.get("obj"); // get a object

    String str2 =  extra.getString("string"); //get a string
}

余分なデータを断片的に取得しようとする場合は、次の方法を試してみてください。

次のようにデータを配置します。

Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER);

次の方法でデータを取得します。

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


  getArguments().getInt(ARG_SECTION_NUMBER);
  getArguments().getString(ARG_SECTION_STRING);
  getArguments().getBoolean(ARG_SECTION_BOOL);
  getArguments().getChar(ARG_SECTION_CHAR);
  getArguments().getByte(ARG_SECTION_DATA);

}

受信アクティビティ

Bundle extras = getIntent().getExtras(); 
String userName;

if (extras != null) {
    userName = extras.getString("name");
    // and get whatever type user account id is
}

最初のアクティビティで値を持つインテントを渡す:

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("uid", uid.toString());
intent.putExtra("pwd", pwd.toString());
startActivity(intent);

第2のアクティビティのインテントを受信する -

Inetent intent=getIntent();
String User=intent.getStringExtra("uid");
String Pass=intent.getStringExtra("pwd");

私たちは、値を送信し、値を取得するという目的で一般に2つの方法を使用します。 値を送信するために、 intent.putExtra("Key",Value); 別のアクティビティの受信意図中にintent.getStringExtra("Key");を使用しintent.getStringExtra("Key"); 、ここでkeyは値を識別するためのキーワードであればどんな値を共有していてもかまいません。 それがあなたのために働くことを願っています。


私はhereで、いくつかの選択肢を含めて、このトピックを少し詳しく詳しく説明しています。

これは、Androidの開発者を簡素化するために書いた新しいjQueryのAndroidフレームワークであるVapor APIを使用しています 。 アクティビティ間で簡単にデータを渡す方法については、その答えの例を参照してください。

また、メソッド呼出しを連鎖させ、オーバーロードされた.put(...)メソッドを利用できるVaporIntentを示します:

$.Intent().put("data", "myData").put("more", 568)...

Vapor APIを使用してアプリケーション全体に簡単にデータを渡すことができますので、アプリケーション開発中にあなたや他の人に役立つことを願っています。





android-intent