android - स्ट्रिंग डेटा के लिए putExtra() और getExtra() का उपयोग कैसे करें




android-intent (8)

क्या कोई मुझे बता सकता है कि इरादे के लिए getExtra() और putExtra() का उपयोग कैसे करें। असल में मेरे पास स्ट्रिंग वैरिएबल कहता है स्ट्र, जो कुछ स्ट्रिंग डेटा स्टोर करता है। अब मैं इस डेटा को एक गतिविधि से दूसरी गतिविधि में भेजना चाहता हूं।

  Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
  String keyIdentifer  = null;
  i.putExtra(strName, keyIdentifer );

और फिर SecondScreen.java में

 public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.table);
        TextView userName = (TextView)findViewById(R.id.userName);
        Bundle bundle = getIntent().getExtras();

        if(bundle.getString("strName")!= null)
        {
            //TODO here get the string stored in the string variable and do 
            // setText() on userName 
        }

    }

मुझे पता है कि यह बहुत ही बुनियादी सवाल है लेकिन दुर्भाग्य से मैं यहां फंस गया हूं। कृपया मदद करे।

धन्यवाद,

संपादित: यहां जिस स्ट्रिंग को मैं एक स्क्रीन से दूसरी स्क्रीन में पारित करने की कोशिश कर रहा हूं वह गतिशील है। मेरे पास एक संपादन टेक्स्ट है जहां मैं स्ट्रिंग प्राप्त कर रहा हूं जो भी उपयोगकर्ता प्रकार। फिर myEditText.getText().toString() की मदद से। मुझे एक स्ट्रिंग के रूप में दर्ज मूल्य मिल रहा है तो मुझे यह डेटा पास करना होगा।


अधिक सरल

प्रेषक पक्ष

Intent i = new Intent(SourceActiviti.this,TargetActivity.class);
i.putExtra("id","string data");
startActivity(i)

रिसीवर पक्ष

Intent i = new Intent(SourceActiviti.this,TargetActivity.class);
String strData = i.getStringExtra("id");

एंड्रॉइड में intent को लागू करना बहुत आसान है .. यह आपको एक गतिविधि से दूसरे गतिविधि में स्थानांतरित करने के लिए ले जाता है, हमें दो विधि putExtra(); और getExtra(); अब मैं आपको उदाहरण दिखा रहा हूँ ..

    Intent intent = new Intent(activity_registration.this, activity_Login.class);
                intent.putExtra("AnyKeyName", Email.getText().toString());  // pass your values and retrieve them in the other Activity using AnyKeyName
                        startActivity(intent);

अब हमें AnyKeyName पैरामीटर से मूल्य प्राप्त करना होगा, नीचे उल्लिखित कोड ऐसा करने में मदद करेगा

       String data = getIntent().getExtras().getString("AnyKeyName");
        textview.setText(data);

जहां भी हमें आवश्यकता हो, हम आसानी से प्राप्त करने से मूल्य प्राप्त कर सकते हैं।


काम करो

etname=(EditText)findViewById(R.id.Name);
        tvname=(TextView)findViewById(R.id.tvName);

        b1= (ImageButton) findViewById(R.id.Submit);

        b1.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                String s=etname.getText().toString();

                Intent ii=new Intent(getApplicationContext(), MainActivity2.class);
                ii.putExtra("name", s);
                Toast.makeText(getApplicationContext(),"Page 222", Toast.LENGTH_LONG).show();
                startActivity(ii);
            }
        });



getfunction 

public class MainActivity2 extends Activity {
    TextView tvname;
    EditText etname;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_activity2);
        tvname = (TextView)findViewById(R.id.tvName);
        etname=(EditText)findViewById(R.id.Name);
        Intent iin= getIntent();
        Bundle b = iin.getExtras();

        if(b!=null)
        {

          String j2 =(String) b.get("name");

etname.setText(j2);
            Toast.makeText(getApplicationContext(),"ok",Toast.LENGTH_LONG).show();
        }
    }

पहले स्ट्रिंग डालें

Intent secondIntent = new Intent(this, typeof(SecondActivity));
            secondIntent.PutExtra("message", "Greetings from MainActivity");

उसके बाद इसे पुनः प्राप्त करें

var message = this.Intent.GetStringExtra("message");

बस इतना ही ;)


यही वह है जो मैं उपयोग कर रहा हूं, उम्मीद है कि यह किसी की मदद करता है .. सरल और प्रभावशाली।

डेटा भेजें

    intent = new Intent(getActivity(), CheckinActivity.class);
    intent.putExtra("mealID", meal.Meald);
    startActivity(intent);

डेटा प्राप्त करें

    int mealId;

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();

    if(bundle != null){
        mealId = bundle.getInt("mealID");
    }

चियर्स!


सरल, पहली गतिविधि में-

    EditText name= (EditText) findViewById(R.id.editTextName);
    Button button= (Button) findViewById(R.id.buttonGo);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this,Main2Activity.class);
            i.putExtra("name",name.getText().toString());
           startActivity(i);
          }
    });

दूसरी गतिविधि में-

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    TextView t = (TextView) findViewById(R.id.textView);
    Bundle bundle=getIntent().getExtras();
    String s=bundle.getString("name");
    t.setText(s);
}

यदि आप चाहते हैं तो आप / अन्य स्थितियों को जोड़ सकते हैं।


पहले Screen.java

text=(TextView)findViewById(R.id.tv1);
edit=(EditText)findViewById(R.id.edit);
button=(Button)findViewById(R.id.bt1);

button.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        String s=edit.getText().toString();

        Intent ii=new Intent(MainActivity.this, newclass.class);
        ii.putExtra("name", s);
        startActivity(ii);
    }
});

दूसरा स्क्रीन। जावा

public class newclass extends Activity
{
    private TextView Textv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.intent);
        Textv = (TextView)findViewById(R.id.tv2);
        Intent iin= getIntent();
        Bundle b = iin.getExtras();

        if(b!=null)
        {
            String j =(String) b.get("name");
            Textv.setText(j);
        }
    }
}

पुश डेटा

import android.content.Intent;

    ...

    Intent intent = 
        new Intent( 
            this, 
            MyActivity.class );
    intent.putExtra( "paramName", "paramValue" );
    startActivity( intent );

उपरोक्त कोड मुख्य activity अंदर हो सकता है। " MyActivity.class " दूसरी Activity है जिसे हम लॉन्च करना चाहते हैं; इसे आपकी AndroidManifest.xml फ़ाइल में स्पष्ट रूप से शामिल किया जाना चाहिए।

<activity android:name=".MyActivity" />

डेटा खींचो

import android.os.Bundle;

    ...

    Bundle extras = getIntent().getExtras();
    if (extras != null)
    {
        String myParam = extras.getString("paramName");
    }
    else
    {
        //..oops!
    }

इस उदाहरण में, उपर्युक्त कोड आपकी MyActivity.java फ़ाइल के अंदर होगा।

gotchas

यह विधि केवल strings पार कर सकती है। तो ListActivity लें कि आपको अपनी सूची ListActivity एक ListActivity को पास करने की आवश्यकता है; एक संभावित कामकाज एक अल्पविराम से अलग स्ट्रिंग को पास करना है और फिर इसे दूसरी तरफ विभाजित करना है।

वैकल्पिक समाधान

SharedPreferences प्रयोग करें





android-intent