求教 自定义控件的数据如何传给父activity 重写onPickerChangeListener()方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 非常感谢楼上回答,用接口实现了。public class MyNumberPicker extends LinearLayout{ private Button mDefault; private Button mAdd; private Button mDel; private TextView tvValue; private int mValue = 0; private MyNumPickerListener mNumPickerListener; public MyNumberPicker(Context context, AttributeSet attrs) { super(context, attrs); this.setOrientation(HORIZONTAL); mDefault = new Button(context,attrs); mDefault.setText(" + "); mDefault.setTextSize(24); mAdd = new Button(context,attrs); mAdd.setText(" + "); mAdd.setVisibility(GONE); mDel = new Button(context,attrs); mDel.setText(" - "); mDel.setVisibility(GONE); tvValue = new TextView(context,attrs); tvValue.setTextColor(Color.BLACK); tvValue.setTextSize(22); tvValue.setVisibility(GONE); addView(mDefault); addView(mAdd); addView(tvValue); addView(mDel); mDefault.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mValue +=1; tvValue.setText(String.valueOf(mValue)); if (mNumPickerListener != null) { mNumPickerListener.getNumPickerValue(mValue); } mAdd.setVisibility(VISIBLE); mDel.setVisibility(VISIBLE); tvValue.setVisibility(VISIBLE); mDefault.setVisibility(GONE); } }); mAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mValue +=1; tvValue.setText(String.valueOf(mValue)); if (mNumPickerListener != null) { mNumPickerListener.getNumPickerValue(mValue); } } }); mDel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mValue > 0){ mValue -=1; tvValue.setText(String.valueOf(mValue)); } if (mValue <= 0){ mAdd.setVisibility(GONE); mDel.setVisibility(GONE); tvValue.setVisibility(GONE); mDefault.setVisibility(VISIBLE); } if (mNumPickerListener != null) { mNumPickerListener.getNumPickerValue(mValue); } } }); } public int getValue(){ return mValue; } public void setValue(int val){ mValue = val; tvValue.setText(String.valueOf(mValue)); if (mValue <= 0){ mAdd.setVisibility(GONE); mDel.setVisibility(GONE); tvValue.setVisibility(GONE); mDefault.setVisibility(VISIBLE); }else{ mAdd.setVisibility(VISIBLE); mDel.setVisibility(VISIBLE); tvValue.setVisibility(VISIBLE); mDefault.setVisibility(GONE); } } public void setOnMyNumPickerListener(MyNumPickerListener listener){ mNumPickerListener = listener; } public interface MyNumPickerListener { public void getNumPickerValue(Integer val); }} 在activity 里面调用控件里写的getValue()返回啊 楼主你好,我也有和你一样的需求,就是在FragmentActivity里面调用这个接口时候会报错,想知道你是在调用接口时候如何处理的 怎么样让安卓程序在管理器中无法强行停止? 模拟器提示Unfortunately,Activity has stopped. 关于用videoview播放rtsp流的问题 如何彻底屏蔽“输入法”。 android JNI库中如何处理IO口操作? URL地址中有汉字则无法下载图片 wallpaperService android中如何将文件存储到SD卡的指定文件夹下????? Android Trace时间问题 关于安卓XML的命名空间 android手机适应不同屏幕是不是只需要考虑DPI? 如何彻底关掉app的服务
public class MyNumberPicker extends LinearLayout{ private Button mDefault;
private Button mAdd;
private Button mDel;
private TextView tvValue;
private int mValue = 0; private MyNumPickerListener mNumPickerListener; public MyNumberPicker(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOrientation(HORIZONTAL); mDefault = new Button(context,attrs);
mDefault.setText(" + ");
mDefault.setTextSize(24); mAdd = new Button(context,attrs);
mAdd.setText(" + ");
mAdd.setVisibility(GONE); mDel = new Button(context,attrs);
mDel.setText(" - ");
mDel.setVisibility(GONE); tvValue = new TextView(context,attrs);
tvValue.setTextColor(Color.BLACK);
tvValue.setTextSize(22);
tvValue.setVisibility(GONE); addView(mDefault); addView(mAdd);
addView(tvValue);
addView(mDel); mDefault.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mValue +=1;
tvValue.setText(String.valueOf(mValue)); if (mNumPickerListener != null) {
mNumPickerListener.getNumPickerValue(mValue);
} mAdd.setVisibility(VISIBLE);
mDel.setVisibility(VISIBLE);
tvValue.setVisibility(VISIBLE); mDefault.setVisibility(GONE);
}
}); mAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mValue +=1;
tvValue.setText(String.valueOf(mValue)); if (mNumPickerListener != null) {
mNumPickerListener.getNumPickerValue(mValue);
}
}
}); mDel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mValue > 0){
mValue -=1;
tvValue.setText(String.valueOf(mValue));
}
if (mValue <= 0){
mAdd.setVisibility(GONE);
mDel.setVisibility(GONE);
tvValue.setVisibility(GONE); mDefault.setVisibility(VISIBLE);
} if (mNumPickerListener != null) {
mNumPickerListener.getNumPickerValue(mValue);
} }
}); } public int getValue(){
return mValue;
} public void setValue(int val){
mValue = val;
tvValue.setText(String.valueOf(mValue)); if (mValue <= 0){
mAdd.setVisibility(GONE);
mDel.setVisibility(GONE);
tvValue.setVisibility(GONE); mDefault.setVisibility(VISIBLE);
}else{
mAdd.setVisibility(VISIBLE);
mDel.setVisibility(VISIBLE);
tvValue.setVisibility(VISIBLE); mDefault.setVisibility(GONE);
}
} public void setOnMyNumPickerListener(MyNumPickerListener listener){
mNumPickerListener = listener;
} public interface MyNumPickerListener {
public void getNumPickerValue(Integer val); }}