0

これは私を夢中にさせています...

ボタンコンストラクターでいくつかのパラメーターを渡したい

Button を拡張する myButton を作成しました。

package com.canbluetoothinterface.utilities;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.view.View.OnClickListener;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class myActivityStartButton extends Button implements OnClickListener {

protected EditText[] Array;
private String Name;
private String BufferName;
private Activity activityinstance;
public String[] sValues;
Class<?> cls;
private Method m;


public myActivityStartButton(String Name, Class<?>clsin, Context context) {
    super(context);
    cls = clsin;
    activityinstance = (Activity) context;
    setId(mygetId());
    this.Name = Name;
    init();

}

private void init(){
    setOnClickListener(this);
}

public myActivityStartButton(String Name, Class<?>clsin, Context context, Method min) {
    super(context);
    this.cls = clsin;
    this.Name = Name;
    this.m = min;
    activityinstance = (Activity) context;
    setId(mygetId());
    setTag(findViewById(mygetId()));

    init();

}

@Override
public void setId(int id) {

    super.setId(id);
}

private int mygetId() {
    int id = 0;
    BufferName = Name; 
    id = activityinstance.getResources().getIdentifier(BufferName, "id", activityinstance.getPackageName());
    return id;
}

@Override
public void onClick(View v) {
    try {
        m.invoke(null, (Object)null);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Intent intent = new Intent(activityinstance, cls );
    activityinstance.startActivity(intent);

}


}

私のアクティビティでは、次のように呼び出します。

Start = new myActivityStartButton("act_testdriveconfiguration_btn_start", DeviceListActivity.class, this, mstartbutton);

しかし、私の OnClick は呼び出されません...何が間違っていますか?

ありがとうございました

4

1 に答える 1