Java 带if条件的按钮

Java 带if条件的按钮,java,android,android-layout,android-button,Java,Android,Android Layout,Android Button,我是Android新手,我正试图用一个按钮打开2个活动,但对我来说不起作用。 例如: 在mainacivity上,有btn_数学和btn_物理打开相同的活动(Main2acitivity)并找到btn_semest1和btn_semest2,每个按钮将为学期模块打开两个其他活动 如果MainActivity上的用户单击: btn\u数学-->btn\u semester1-->将具有模块mat 如果单击btn_semester1相同的按钮: btn\U物理-->btn\U semester1--

我是Android新手,我正试图用一个按钮打开2个活动,但对我来说不起作用。 例如: 在
mainacivity
上,有
btn_数学
btn_物理
打开相同的活动(
Main2acitivity
)并找到
btn_semest1
btn_semest2
,每个按钮将为学期模块打开两个其他活动

如果MainActivity上的用户单击:
btn\u数学
-->
btn\u semester1
-->将具有
模块mat
如果单击btn_semester1相同的按钮:
btn\U物理
-->
btn\U semester1
-->将具有
模块HY

main活动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"/>
<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"/>
@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);
    }


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

}
Main2Activity.java:

<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"/>
<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"/>
@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);
    }


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

}

在MainActivity中,您可以将用于识别的id传递到Main2Activity中。
main活动

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

}
main2活动

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

}

您可以通过
Intent
在活动之间传递数据。这是一个例子谢谢你的评论,我可以有一个关于我的代码的例子吗?你应该使用
..equals(…)
来比较
字符串
s,而不是
=
你帮了我很多,非常感谢你,我的第二个活动中有一个小问题,你的代码:
如果(id==“Math”){i=新的意图(this,ModulesMAT2.class);startActivity(i);}else如果(id=“Physics”){i=newintent(this,ModulesPHY2.class);startActivity(i);}
i拥有(无法解析符号'i'),只需在每个i之前添加Intent。比如:Intent i=newintent(this,ModulesMAT2.class);