2017-04-20 4 views
0

私は、GridViewでSIと呼ばれるアクティビティを持っています。このアクティビティには、クリックすると別のアクティビティに移動するユニットが含まれています。私は、どのインテントがそれを開始したかに応じてTextViewsを変更するだけの同じアクティビティに到達する方法を知りたいと思います。どのインテントがそれを開始したかに応じてアクティビティの内容を変更するには?

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

の可能性のある重複の内側にあることを行うための別の方法を読みます[インテントから追加データを取得する方法n 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

ありがとう、それは私を助けました。 –

関連する問題