2014-07-19 2 views
0

저는 Android 용 간단한 계산기를 작성 중이며 보통 작업을 위해 기본 클래스에 SubClass를 만들고 싶습니다. 버튼을 클릭 한 후 Toast 메시지를 표시하지 않고 ButtonClickListener이 작동하지 않습니다.OnClickListener의 Android 하위 클래스가 작동하지 않습니다.

내 소스 코드 :

package ir.pishguy.tsms.peamoncalculator; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import static ir.tuxworld.tsms.peamoncalculator.R.layout.*; 


public class MyActivity extends ActionBarActivity { 
    private String Operation; 
    private float NumberBf; 
    private EditText Scr; 
    private ButtonClickListener btnClick; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(activity_my); 

     Scr = (EditText) findViewById(R.id.editText); 
     int idList[]={ 
       R.id.button0,R.id.button1,R.id.button2, 
       R.id.button3,R.id.button4,R.id.button5, 
       R.id.button6,R.id.button7,R.id.button8, 
       R.id.button9,R.id.buttonEq,R.id.buttonDiv, 
       R.id.buttonClear,R.id.buttonSum,R.id.buttonTafrig 
     }; 

     for (int id:idList){ 
      View v= (View) findViewById(id); 
      System.out.println(id); 
      v.setOnClickListener(btnClick); 
     } 
    } 

    // New Class ButtonClickListener 
    private class ButtonClickListener implements View.OnClickListener { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(),"CLICKED !!", 
        Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

답변

2

이 줄을 추가합니다 :

btnClick = new ButtonClickListener(); 
    for (int id:idList) { 
    ... 

당신은 실제로 그게 다야, 당신의 ButtonClickListener을 인스턴스화하지 않습니다.

0

, 아래와 같이 시도

v.setOnClickListener(btnClick); 

    private OnClickListener btnClick= new OnClickListener() {  
       @Override 
       public void onClick(View v) {     

        Toast.makeText(getActivity(), "clicked", Toast.LENGTH_SHORT).show(); 
       } 
      }; 
관련 문제