我正在开发一个Android应用程序,Eclipse IDE + ADT,目标API编号为17,并在BlueStacks上进行调试。 我必须在单击按钮时触发某些操作,因为我在活动类中使用了一个方法,而在我使用的XML代码中:
android:onClick="myCoolMethod"
它似乎工作正常,但它总是在第二次点击按钮后工作。 我的问题是: 鉴于属性,这应该是这种方式吗?如果是这样,是否有另一个属性响应第一次点击? 如果没有,为什么它没有响应第一次点击,我该怎么做才能解决它?
回应评论:
public void myCoolMethod(View v){
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v==findViewById(R.id.button1)){
Intent inta = new Intent(MainActivity.this, datainsert.class);
startActivity(inta);
}
}
});
是的,它是一个独立的按钮。
答案 0 :(得分:0)
您正在设置on click侦听器两次!从我的酷方法中删除on click侦听器,它将起作用
public void myCoolMethod(View v){
Intent inta = new Intent(MainActivity.this, datainsert.class);
startActivity(inta);
}
我希望你明白为什么会这样。首先在XML中设置onclick。然后在第一次单击发生后再次设置它(仅这一次以编程方式),以便它覆盖第一次onclick。因此,只有在第二次单击后才会发送意图。程序按预期运行。只需使用上面的代码来修复
答案 1 :(得分:-1)
这个按钮是否在ListView项目中?或者这个按钮是独立的吗? 有时它与ListView onItemClick冲突,类似于Checkbox和ListView onItemClick。
Button btnSearch = (Button) findViewById(R.id.button_Search);
btnSearch.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// Do Button Clicked
}
});