android - titel - title tag länge




Wie bekomme ich zusätzliche Daten von Intent auf Android? (9)

Dies ist für den Adapter, für Aktivität müssen Sie nur mContext zu Ihrem Activty-Namen ändern und für Fragment müssen Sie mContext zu getActivity () ändern

 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);
        }

Wie kann ich Daten von einer Aktivität (Absicht) an eine andere senden?

Ich verwende diesen Code zum Senden von Daten:

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

Verschiedene Arten von Extra von der Absicht erhalten

Um auf Daten von Intent zuzugreifen, sollten Sie zwei Dinge wissen.

  • SCHLÜSSEL
  • Datentyp Ihrer Daten

Es gibt verschiedene Methoden in der Intent-Klasse, um verschiedene Arten von Datentypen zu extrahieren. Es sieht aus wie das

getIntent (). XXXX (KEY) oder intent.XXX (KEY);


Wenn Sie den Datentyp Ihrer Varibale kennen, die Sie in otherActivity festgelegt haben, können Sie die entsprechende Methode verwenden.

Beispiel zum Abrufen von String in Ihrer Aktivität aus Intent

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

Liste verschiedener Varianten von Methoden für verschiedene dataType

Sie können die Liste der verfügbaren Methoden in Official Documentation of Intent einsehen.


Anstatt eine andere neue Absicht zu initialisieren, um die Daten zu erhalten, tun Sie das einfach:

String id = getIntent().getStringExtra("id");

Ich habe hier nur eine Antwort geschrieben, die dieses Thema etwas ausführlicher behandelt, einschließlich einiger Alternativen.

Es nutzt Vapor API , ein neues jQuery-inspiriertes Android-Framework, das ich geschrieben habe, um Android Dev zu vereinfachen. Sehen Sie sich das Beispiel in dieser Antwort an, um zu erfahren, wie Sie Daten zwischen Aktivitäten leicht weitergeben können.

Außerdem zeigt es VaporIntent , mit dem Sie Methodenaufrufe .put(...) und die überladene Methode .put(...) verwenden können:

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

Mit der Vapor-API können Sie ganz einfach Daten über Ihre gesamte Anwendung weitergeben. Hoffentlich wird sie Ihnen und anderen während der App-Entwicklung nützlich sein.


Nur ein Vorschlag:

Anstatt "id" oder "name" in Ihrer i.putExtra ("id" .....) zu verwenden, würde ich vorschlagen, wenn es sinnvoll ist, die aktuellen Standardfelder zu verwenden, die mit putExtra () verwendet werden können, d Intent.EXTRA_etwas.

Eine vollständige Liste finden Sie unter Intent (Android Developers).


Sie können das auch so machen
// Wert in Absicht setzen

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

// Nutzen Sie den Wert aus der Absicht

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

Wenn Sie versuchen, zusätzliche Daten in Fragmenten zu erhalten, können Sie Folgendes versuchen:

Daten platzieren mit:

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

Daten abrufen mit:

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);

}

Wir können es mit einfachen Mitteln tun:

In FirstActivity:

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

In SecondActivity:

    try {
        Intent intent = getIntent();

        String uid = intent.getStringExtra("uid");
        String pwd = intent.getStringExtra("pwd");

    } catch (Exception e) {
        e.printStackTrace();
        Log.e("getStringExtra_EX", e + "");
    }

//  How to send value using intent from one class to another class
//  class A(which will send data)
    Intent theIntent = new Intent(this, B.class);
    theIntent.putExtra("name", john);
    startActivity(theIntent);
//  How to get these values in another class
//  Class B
    Intent i= getIntent();
    i.getStringExtra("name");
//  if you log here i than you will get the value of i i.e. john




android-intent