按钮,如果条件
我是新来的Android,我试图做一个按钮打开2个活动,但没有为我工作。 为前: 上Mainacitivity
,有btn_mathematics
和btn_physics
打开相同的活性(Main2acitivity
),并找到btn_semester1
和btn_semester2
,每个按钮将打开其他2个活动学期模块。按钮,如果条件
如果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"/>
我想,没有必要添加XML为ModulesMAT和ModulesPHY,它很类似于其他人。
现在的Java代码:
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:
@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。
MainActivity
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
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);
}
}
你应该使用'... equals(...)'来比较'String's而不是'==' – Titus
你帮助我的男人,非常感谢你, 只是我的第二个活动的一个小问题,与你代码: '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
只需在每个i之前添加Intent。像:Intent i = new Intent(this,ModulesMat2.class); –
你可以通过'Intent'传递活动之间的数据。这里是一个例子https://*.com/a/2091482/1552587 – Titus
谢谢你的评论,我可以在我的代码上有一个例子吗? – itray