package github.nisrulz.intents; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; /** * The type Main activity. */ public class MainActivity extends AppCompatActivity { /** * The Text view 1. */ TextView textView_1; /** * The Lv. */ ListView lv; /** * The Adapter. */ ArrayAdapter<String> adapter; /** * The Data. */ ArrayList<String> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); textView_1 = (TextView) findViewById(R.id.textView_1); data = new ArrayList<>(); data.add("Explicit Intent with Parceable Object"); data.add("Explicit Intent for Result"); lv = (ListView) findViewById(R.id.listView); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); lv.setAdapter(adapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { switch (i) { case 0: launchExplicitIntentWithParceableObj(); break; case 1: launchExplicitIntentForResult(); break; } } }); } /** * Explicit Intent */ private void launchExplicitIntentWithParceableObj() { // first parameter is the context, second is the class of the activity to launch Intent i = new Intent(MainActivity.this, Main2Activity.class); POJOClass pojoClass = new POJOClass("Radix", "This is some text"); i.putExtra("data", pojoClass); i.putExtra("type", "pojo"); startActivity(i); // brings up the second activity } /** * Explicit Intent For Result */ private void launchExplicitIntentForResult() { Bundle bundle = new Bundle(); bundle.putInt("number", 10); bundle.putString("text", "This is text sent from MainActivity"); // first parameter is the context, second is the class of the activity to launch Intent i = new Intent(MainActivity.this, Main2Activity.class); i.putExtra("bundle", bundle); i.putExtra("type", "result"); startActivityForResult(i, 100); // brings up the second activity } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == 100 && data != null) { Bundle bundle = data.getBundleExtra("returndata"); String text = bundle.getString("text"); Toast.makeText(MainActivity.this, "Text Received : " + text, Toast.LENGTH_LONG).show(); } } } }