我需要在30个按钮上触发30次按钮单击,但应用程序崩溃可能是由于过度使用内存造成的,我在Enter键侦听器中对每个按钮执行了单击。
还有另一种方法可以触发按钮单击,也许有一个按钮可以同时触发30个按钮,这意味着只需要一个performclick功能。
请帮助我已经坚持一年多了。
editext.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey (View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode==KeyEvent.KEYCODE_ENTER) {
if ("cat".equalsIgnoreCase(editext.getText().toString())) {
but1.performClick();
}
if ("dog".equalsIgnoreCase(editext.getText().toString())) {
but2.performClick();
}
if ("horse".equalsIgnoreCase(editext.getText().toString())) {
but3.performClick();
}
if ("pony".equalsIgnoreCase(editext.getText().toString())) {
but4.performClick();
}
if ("lion".equalsIgnoreCase(editext.getText().toString())) {
but5.performClick();
}
if ("monkey".equalsIgnoreCase(editext.getText().toString())) {
but6.performClick();
}
if ("goat".equalsIgnoreCase(editext.getText().toString())) {
but7.performClick();
}
if ("bear".equalsIgnoreCase(editext.getText().toString())) {
but8.performClick();
}
if ("mule".equalsIgnoreCase(editext.getText().toString())) {
but9.performClick();
}
if ("wolf".equalsIgnoreCase(editext.getText().toString())) {
but10.performClick();
}
if ("cow".equalsIgnoreCase(editext.getText().toString())) {
but11.performClick();
}
return true;
}
}
});
我明天将发布logcat ..谢谢大家的帮助
最佳答案
您可以声明操作方法并在onClickListeners中调用它们。
代替:
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//something1
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//something2
});
你可以写:
public void Something1(){
//something1
}
public void Something2(){
//something2
}
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Something1();
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Something2();
});
如果您要这样做,则无需以编程方式单击按钮。您只能调用这些方法(
Something1()
,Something2()
)。
关于android - performclick()在Android Java中导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295844/