Reputation: 59
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);
}
}
});
}
...
}
Upvotes: 0
Views: 39
Reputation: 208
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...
}
Upvotes: 1