gpt4 book ai didi

android - 单击监听器上的按钮

转载 作者:行者123 更新时间:2023-11-29 17:36:27 24 4
gpt4 key购买 nike

我来自 iOS 世界,刚开始接触 Android。我参加了 Java 培训,所以我知道如何创建方法,但我没有得到操作。

我想做的是从一个按钮创建一个方法操作,但我在任何地方都找不到如何做到这一点(显然找错了地方)。当我点击按钮 1 时,我想创建一个内部只有 a=1 的方法,当我点击按钮 2 时,我想要 a=2(然后我可以决定当 a 为 1 或 2 时要做什么)。

我在 Acitivity_main.xml 中创建了我的按钮,并在 OnClick 中提供了一个方法名称,但我仅此而已。

当我与 iOS 进行比较时,它似乎是如此基础,以至于我不明白为什么我找不到如何去做。

好心的人能为我指明创建 Action 的正确方向吗?

最佳答案

你有三个选择:

common in 1,2) 您需要为布局 XML 文件中的每个按钮分配一个 id

<Button android:id="@+id/my_button1"
..........
/>
<Button android:id="@+id/my_button2"
..........
/>

1)setContentView() 之后的 Activity 的 onCreate() 方法中,您需要设置一个新的 OnClickListener 每个按钮。

 public class MyActivity extends Activity  {
int a;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button myButton1 = (Button) findViewById(R.id.my_button1);
Button myButton2 = (Button) findViewById(R.id.my_button2);

myButton1.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
// Do what you want here
a = 1;
}
});

myButton2.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
// Do what you want here
a = 2;
}
});
}

2) 正如您在第一种方法中看到的,我们需要从 OnClickListener 为每个按钮创建一个新对象。出于性能可读性原因,我们可以将所有这些混合到一个OnClickListener中。

public class MyActivity extends Activity implements View.OnClickListener {
int a;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button myButton1 = (Button) findViewById(R.id.my_button1);
myButton1.setOnClickListener(this);
Button myButton2 = (Button) findViewById(R.id.my_button2);
myButton2.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.my_button_1:
a = 1;
break;
case R.id.my_button_2:
a = 2;
break;
}
}
...
}

3) 您不需要为此选项分配一个 id,您只需要在 XML 中分配方法名称,然后在 Activity 中使用完全相同的名称实现相同的方法,但是它必须将 View 对象作为参数。

<Button 
...
android:onClick="button1Click" />

<Button
...
android:onClick="button2Click" />

然后在您的 Activity 中编写方法。

public class MyActivity extends Activity implements View.OnClickListener {
int a;

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

public void button1Click(View v) {
a = 1;
}


public void button2Click(View v) {
a = 2;
}
}

这就是您的所有选择。我个人更喜欢数字 2。

关于android - 单击监听器上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com