我是android开发的新手。我有一个疑问。我知道您可以添加一个按钮并将其初始化为
Button b1=(Button) findViewById(R.id.button1);
我还可以在 XML 文件中给出一个函数名称。
android:onClick="click_event"
我的疑问是,哪种方法是最好和有效的?就像它说的那样,最好使用@string 资源而不是硬编码资源。
我是android开发的新手。我有一个疑问。我知道您可以添加一个按钮并将其初始化为
Button b1=(Button) findViewById(R.id.button1);
我还可以在 XML 文件中给出一个函数名称。
android:onClick="click_event"
我的疑问是,哪种方法是最好和有效的?就像它说的那样,最好使用@string 资源而不是硬编码资源。
我觉得你很困惑。你举的例子是两个不同的东西。
添加按钮
这条线
Button b1=(Button) findViewById(R.id.button1);
不添加Button
. 它声明并初始化一个实例,Button
该实例引用了Button
您当前膨胀的 xml 中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"/>
你也可以onClick()
在你的Java中设置类似的东西
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
}
请注意,您需要implements OnClickListener
在Activity
声明中添加的最后一种方式
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
s 并打开id
或检查View
参数以了解Button
单击了哪个或Listeners
为不同Button
的 s 创建单独的。