求教 自定义控件的数据如何传给父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里面调用这个接口时候会报错,想知道你是在调用接口时候如何处理的 android布局问题 困扰几周了,请教啊,android与websevice数据交互很诡异的问题 androidannotations 框架问题 Android中创建类后为什么引用不了方法? 使用android自定义组件是否可以不手动添加布局文件? Android初学者求助。。。应该是很简单的问题 tabHost+listview UI 界面---新手问题 eclipse 如何中断运行中的Android程序 我有两个按钮,用来切换两个不同的页面 安卓在有插入SD卡的时候,怎么获取U盘名称 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); }}