android - performclick()在Android Java中导致崩溃

标签 android button crash click listener

我需要在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/

相关文章:

android - 如何在android xml中绘制直角三角形

android - OSMDroid 为 CompassOverlay 设置点击

android - AmazonSNS - AwsCredentials.properties - NullPointerException

button - ExtJS 中的递增/递减按钮

android - 如何在按钮上显示阿拉伯数字?

android随机崩溃并发问题

crash - Apache Ignite ARM不安全的GetFloat段错误

android - 如何实现Android和iOS设备之间的实时语音聊天?

objective-c - 在 xcode 中延迟命令

java - 在 Linux (Servicemix) 下运行时在工作表上调用 autoSizeColumn 时崩溃