-1

30 個のボタンで 30 個のボタン クリックをトリガーする必要がありますが、おそらくメモリの過剰使用が原因でアプリがクラッシュします。Enter キー リスナー内の各ボタンに対してクリックを実行しました。ボタンのクリックをトリガーできる別の方法はありますか?おそらく、30 個のボタンを同時にトリガーできるボタンが 1 つあるため、 performclick 関数が 1 つしか必要ありません。

私が1年以上これに固執しているのを助けてください。

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を投稿します..みんなの助けに感謝します

4

1 に答える 1

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() ) のみを呼び出すことができます。

于 2013-10-10T12:40:08.257 に答える