0

I've got an activity called SI with GridView which contains units that take you to another activity on click. I would like to know how to get to the same activity that will just change its TextViews depending on which intent started it.

public class SI extends AppCompatActivity {

    GridView gridView;
    String[] units;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zakladnijednotky);
        gridView = (GridView) findViewById(R.id.gridView1);
        units = getResources().getStringArray(R.array.units);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, units);
        gridView.setAdapter(adapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {

                if (gridView.getItemAtPosition(position).toString().contains("amper")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("kilogram")) {
                    Intent kilintent = new Intent(SI.this, MainActivity.class);
                    startActivity(kilintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("metre")) {
                    Intent metrintent = new Intent(SI.this, MainActivity.class);
                    startActivity(metrintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("second")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("kelvin")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("candela")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }
                else if (gridView.getItemAtPosition(position).toString().contains("mol")) {
                    Intent mintent = new Intent(SI.this, MainActivity.class);
                    startActivity(mintent);
                }

            }
        });
    }
    ...
}
Daniel
  • 2,355
  • 9
  • 23
  • 30
  • 1
    Possible duplicate of [How do I get extra data from intent on Android?](http://stackoverflow.com/questions/4233873/how-do-i-get-extra-data-from-intent-on-android) – Gary99 Apr 20 '17 at 23:31

1 Answers1

1

You can pass some data inside the intent and read that data in your new Activity.

Intent mintent = new Intent(SI.this, MainActivity.class);
String strName = "kilogram";
i.putExtra("KEY_NAME_FOR_STRING_I_NEED", strName);
startActivity(mintent); 

And read it

Bundle extras = getIntent().getExtras();
newString= extras.getString("KEY_NAME_FOR_STRING_I_NEED");

or, another way to do that

newString= getIntent().getStringExtra("KEY_NAME_FOR_STRING_I_NEED");

And change your TextViews depending wich value are inside newString

if(newString.equals("kilogram")) {
    //do something...
}
jorgeavilae
  • 208
  • 1
  • 9