我有2个活动,第一个活动包括两个按钮,第二个活动还包括2个按钮。当我点击第一个活动的第一个按钮时,我需要第二个活动开始,第二个活动的第一个按钮变为"隐形"和第二个按钮"可见"。再次,如果用户回到第一个活动并单击第二个按钮,则第二个活动开始,第二个按钮变为"不可见"第一个"可见"。
我只需要知道如何确定用户按下第一个活动中的哪个按钮。有没有具体的方法,或者有什么方法?
我尝试在第一个活动中将变量(int i)设置为全局变量,如果用户单击第一个按钮,则此(i)更改为1(相同的东西到第二个按钮),并设置第二个活动中的一个条件,将此(i)变量称为:
MainActivity a=new MainActivity();
if(a.i==0){
//do this
}
else if(a.i==1){
//do this
}
但这不起作用,第二个活动总是得到这个(i),因为它等于(0)。
答案 0 :(得分:1)
您应该使用Intent开始第二项活动。对于此Intent,您可以放置一些参数。 在您的第一个活动中:
Button b1 = (Button)findViewById(R.id.button1);
Button b2 = (Button)findViewById(R.id.button2);
// Set OnClickListeners
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Start Activity
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("buttontohide", 0); // Hide Button 0
startActivity(intent);
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Start Activity
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("buttontohide", 1); // Hide Button 1
startActivity(intent);
}
});
在你的第二个活动中:
Intent myIntent = getIntent();
int i = myIntent.getExtras().getInt("buttontohide");
答案 1 :(得分:0)
您可以在开始第二个活动之前将参数传递给extra。用它告诉第二个活动点击了哪个按钮。在第二个活动的onCreate()方法中,分析额外以定义必须隐藏的按钮。
答案 2 :(得分:0)
MainActivity a = new MainActivity();
您正在再次初始化Activity
。但在您的情况下,请改为使用static
变量。
做这样的事情。
在MainActivity.java
声明static
变量
public class MainActivity extends Activity {
public static int a = 0;
// Rest of your code
}
现在从第二个活动检查值是0还是1,如此
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
if(MainActivity.a == 0) { /*Do something*/ }
else { /*Do something*/ }
}
}
答案 3 :(得分:0)
我假设您知道所有代码如何使按钮可见和不可见。首先在你的第一个活动中声明一个int变量,然后使用getIntent将其传递给第二个活动,然后使用if else逻辑捕获你的变量值,并将你的代码设置为使按钮不可见。
答案 4 :(得分:0)
您可以使用Bundle将数据从活动A传递到活动B:
在活动A中:
... onClick() {
...
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("ButtonNR", iButtonNR);
startActivity(intent);
}
在活动B中:
public class ActivityB extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Bundle bundle = getIntent().getExtras();
int iButtonNR = bundle.getInt("ButtonNR");
switch (iButtonNR) {
case 0:
//do something...
break;
case 1:
//do another thing...
break;
}
}
}