2013-10-10 44 views
-1

我需要在30個按鈕上觸發30個按鈕點擊,但應用程序崩潰可能是由於內存過度使用,我使用單擊Enter鍵監聽器中的每個按鈕。 有沒有另一種方式,我可以觸發按鈕單擊可能有一個按鈕,可以同時觸發30個按鈕,這意味着只需要一個performclick功能。performclick()會導致android java崩潰

請幫助我一直堅持這個一年多。

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的明天..感謝大家的幫助

+2

張貼您的代碼和錯誤使用的logcat – PankajAndroid

+0

告訴我們,你初始化按鈕 – Raghunandan

+0

but1.setOnClickListener(新View.OnClickListener(){ \t公共無效的onClick(視圖v){}}; – user2866974

回答

1

你可以聲明方法的行動,並呼籲他們在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())。

+0

謝謝,我可以使用像如果(keyCode == KeyEvent.KEYCODE_ENTER){//自動生成的方法存根 if(keyCode == KeyEvent.KEYCODE_ENTER){//關鍵字== keyEvent.KEYCODE_ENTER) {「cat」.equalsIgnoreCase(editext.getText()。toString())){ something1(); }});然後使用... public void Something1(){ // something1 } – user2866974