2017-10-21 3 views
-3

나는 Android에 익숙하지 않고 단추 하나를 두 개 열어 두려고 노력하고 있지만 나를 위해 일하지 않습니다. 예에 대한 : Mainacitivity에이 btn_mathematics이 있고 btn_physics 같은 활동 (Main2acitivity)를 열고 btn_semester1btn_semester2는, 각 버튼은 학기 모듈이 개 다른 활동을 엽니 다 찾을 수 있습니다. Mainacitivity에 사용자가 클릭하면조건이있는 버튼

: btn_mathematics는 --->btn_semester1 --->ModulesMAT 이되고 btn_semester1 같은 버튼을 클릭 한 경우 : btn_physics는 --->btn_semester1 --->ModulesPHY이있을 것이다 .

MainActivity의 XML :

<Button 
    android:id="@+id/btn_mathematics" 
    android:onClick="btn_mathematics" 
    android:text="@string/btn_mathematics/> 

<Button 
    android:id="@+id/btn_physics" 
    android:onClick="btn_physics" 
    android:text="@string/btn_physics"/> 

Main2Activity의 XML :

<Button 
    android:id="@+id/btn_semester1" 
    android:onClick="btn_semester1" 
    android:text="@string/btn_semester1"/> 

<Button 
    android:id="@+id/btn_semester2" 
    android:onClick="btn_s2" 
    android:text="@string/btn_semester2"/> 

내가 필요가 다른 사람에, ModulesMAT 및 ModulesPHY위한 그것의 매우 유사한 XML을 추가하지 것을 생각한다.

지금은 자바 코드 :

MainActivity.java :

@Override 
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void btn_mathematics (View v) { 
     Intent intent = new Intent(MainActivity.this, Main2Activity.class); 
     startActivity(intent); 
    } 

    `public void btn_physics (View v) { 
     Intent intent = new Intent(MainActivity.this, Main2Activity.class); 
     startActivity(intent); 
    } 


} 

Main2Activity.java : 당신이로 인식하는 ID를 전달할 수 MainActivity에서

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
} 



public void btn_semester1 (View v) 
{ 
    Intent i = getIntent(); 
    String id = i.getStringExtra("id"); 
    if(id == "btn_mathematics") 
    { 
     i = new Intent(this, ModulesMAT.class); 
     startActivity(i); 
    } 
    else if (id == "btn_physics") 
    { 
     i = new Intent(this, ModulesPHY.class); 
     startActivity(i); 
    } 

} 


public void btn_semester2 (View v) 
{ 
    Intent i = getIntent(); 
    String id = i.getStringExtra("id"); 
    if(id == "btn_mathematics") 
    { 
     i = new Intent(this, ModulesMAT2.class); 
     startActivity(i); 
    } 
    else if (id == "btn_physics") 
    { 
     i = new Intent(this, ModulesPHY2.class); 
     startActivity(i); 
    } 

} 
+0

public void btn_mathematics (View v) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); Bundle bundle = new Bundle(); bundle.putString("id","Math"); intent.putExtra(bundle); startActivity(intent); } public void btn_physics (View v) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); Bundle bundle = new Bundle(); bundle.putString("id","Physics"); intent.putExtra(bundle); startActivity(intent); } 

Main2Activity. 다음은 예입니다 https://stackoverflow.com/a/2091482/1552587 – Titus

+0

의견을 주셔서 감사합니다. 코드에 대한 예제가 있습니까? – itray

답변

1

Main2Activity.
MainActivity 당신은`Intent`을 통해 활동 사이에 데이터를 전달할 수 있습니다

String id; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

    Bundle bundle = getIntent().getExtras(); 
    id= bundle.getString("id"); 
} 

public void btn_semester1 (View v) 
{ 
    if(id == "Math") 
    { 
     i = new Intent(this, ModulesMAT2.class); 
     startActivity(i); 
    } 
    else if (id == "Physics") 
    { 
     i = new Intent(this, ModulesPHY2.class); 
     startActivity(i); 
    } 

} 


public void btn_semester2 (View v) 
{ 
    if(id == "Math") 
    { 
     i = new Intent(this, ModulesMAT2.class); 
     startActivity(i); 
    } 
    else if (id == "Physics") 
    { 
     i = new Intent(this, ModulesPHY2.class); 
     startActivity(i); 
    } 

} 
+0

'=='대신'... equals (...) '를 사용하여 – Titus

+0

당신은 나를 도와 줬어, 고마워, 내 두 번째 활동에 약간의 문제가있다. 코드 : 'if (id == "Math") { i = new Intent (this, ModulesMAT2.class); startActivity (i); } else if (id == "Physics") { i = new Intent (this, ModulesPHY2.class); startActivity (i); } }' 난 데 (해결할 수없는 symbole 'I') – itray

+0

그냥 각 내가 전에 의도를 추가합니다. Like : Intent i = 새로운 인 텐트 (this, ModulesMat2.class); –