2016-04-28 3 views
1

私はタッチキーパッドUIを作成し、完了とバックボタンのイベントリスナーを設定するAndroidモジュールライブラリを持っています。クリックインタフェースコールバックでは、Androidでnullを返します

またeventCallbackインタフェースを実装

での主な活動を持ってMainActivity.java(Appication)

public class MainActivity extends AppCompatActivity implements eventCallback { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     View v = new touchkey(this); 
     setContentView(v); 
    } 

    @Override 
    public void onClick() { 
     Log.i("test","complete"); 
     Toast.makeText(this, "this is my Toast message!!! =)", 
       Toast.LENGTH_LONG).show(); 
    } 
} 

eventCallback.java(アンドロイドモジュールライブラリ)

public interface eventCallback { 
    void onClick(); 
} 

touchkey.java(アンドロイドモジュールライブラリ)

public class touchkey extends RelativeLayout{ 
    private static touchkey INSTANCE; 
    TextView bclear; 
    ImageView bdone; 

    eventCallback eventCall; 


    public touchkey(Context context) { 
     super(context); 
     initialize(context); 
    } 


    public touchkey(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     initialize(context); 
    } 
    public void test() { 
     Log.i("test","test"); 
    } 

    private void initialize(Context context) { 
     inflate(context, R.layout.touchkey, this); 


     bclear = (TextView) findViewById(R.id.anti_theft_t9_key_clear); 
     bdone = (ImageView) findViewById(R.id.anti_theft_t9_key_done); 


     bdone.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if (eventCall != null) { 
        eventCall.onClick(); 
       } 
      } 
     }); 

     backButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 
    } 
} 

しかしtouchkey.java

eventCall.onClickのIAMなっnullポインタ例外(); (eventCallがnullです)

私はどこが間違っているのか分かりません。誰でもこれを助けることができます。要件:

public void setEventCall(eventCallback eventCall) { 
    this.eventCall = eventCall; 
} 

そして、(MainActivityで)それを使用する:私はあなたが(touchkey.javaに)eventCallためsetterを作成する必要があります主な活動に図書館に

答えて

5

が起こってクリックイベントを処理する必要が

View v = new touchkey(this); 
setContentView(v); 
((touchkey) v).setEventCall(this); 
+1

ありがとうございます... –

関連する問題