我是 Android 开发的新手。我有疑问。 我知道你可以添加一个按钮并像这样初始化它
Button b1=(Button) findViewById(R.id.button1);
我还可以在 XML 文件中给出函数名称。
android:onClick="click_event"
我的疑问是,哪种方法最好且最有效? 就像它说最好使用 @string 资源而不是硬编码资源。
最佳答案
我觉得你很困惑。你给出的例子是两个不同的东西。
添加按钮
这一行
Button b1=(Button) findViewById(R.id.button1);
不添加 Button
。它声明并初始化 Button
的实例,该实例引用您当前膨胀的 xml 中的 Button
,它的 id
为 button1
所以在你的 xml 中你会有某处
<Button
android:id="@+id/button1"
<!-- other properties -->
/>
您可以使用
以编程方式添加一个Button
Button bt1 = new Button(this);
// give it properties
但在 xml 中通常更容易做到,因为在这里您必须以编程方式为其提供参数、属性,并将其添加到膨胀的 layout
点击时
就 onClick()
而言,它取决于您认为在您的情况下最简单和最好的方法。我喜欢经常像那样在 xml 中声明它,但您可以通过多种方式进行声明。使用这种方法,你只需要确保你有一个像这样的函数,它是 public
并且只接受一个参数,并且该参数必须是一个 View
public void clickEvent(View v)
{
// code here
}
我还更改了名称,因此您的 xml 会像
<Button
android:id="@+id/button1"
<!-- other properties -->
android:onClick="clickEvent"/>
你也可以在你的 Java 中设置 onClick()
Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// code here
}
});
或
Button b1=(Button) findViewById(R.id.button1);
b1.setOnClickListener(this);
@Override
public void onClick(View v)
{
// code here
}
请注意,您需要在 Activity
声明中添加 implements OnClickListener
的最后一种方法
public class MyActivity extends Activity implements OnClickListener
{
您还可以创建自己的点击 Listener
,方法是将其更改为类似的内容
b1.setOnClickListener(myBtnClick);
然后用类似的东西创建它的实例
public OnClickListener myBtnClick = new OnClickListener()
{
@Override
public void onClick(View v)
{
// click code here
}
};
您可以将此用于多个 Button
并打开 id
或检查 View
参数以了解哪个 Button
被点击或为不同的 Button
创建单独的 Listeners
。
关于android - 添加按钮的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319711/