2017-04-20 47 views
0

我已经有一个名为SI的活动,带有GridView,其中包含可让您在单击时进入另一活动的单元。我想知道如何得到相同的活动,只是根据哪个意图启动它来更改TextView。如何根据哪些意图启动它来更改活动内容?

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

      } 
     }); 
    } 
    ... 
} 
+1

的可能的复制[我如何从意向o获得额外的数据[Android的]](http://stackoverflow.com/questions/4233873/how-do-i-get-extra-data-from-intent-on-android) – Gary99

回答

1

您可以传递意图中的一些数据并在新的活动中读取该数据。

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

阅读它

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

,或者另一种方式来做到这一点

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

并改变取决于至极值的TextViews都在里面newString

if(newString.equals("kilogram")) { 
    //do something... 
} 
+0

谢谢你的回答,我会尝试它,但我代表什么? –

+0

对不起,我不知道你的意思。也许这[文档链接](https://developer.android.com/guide/components/intents-filters.html)解决您的疑惑 – jorgeavilae

+0

谢谢,它帮助了我。 –