在Android中实现对NumberPicker的OnValueChange

在Android中实现对NumberPicker的OnValueChange,android,valuechangelistener,numberpicker,Android,Valuechangelistener,Numberpicker,我正在尝试将onValueChangeListener添加到android 4.2.2中的数字选择器(np1)中 这是我到目前为止所拥有的 public class main extends Activity { ViewFlipper vf = null; HttpClient client = null; private ArrayList<String> captionList = new ArrayList<String>(); ListView lv = nu

我正在尝试将onValueChangeListener添加到android 4.2.2中的数字选择器(np1)中

这是我到目前为止所拥有的

public class main extends Activity  {
ViewFlipper vf = null;
HttpClient client = null;
private ArrayList<String> captionList = new ArrayList<String>();
ListView lv = null;
private String custid = null;
ImageView iv = null;
private int vfloginview = 0;
private int vflistview = 0;
private boolean vfsentinal = false;
NumberPicker np1 = null;
TextView totalcost = null;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mystuffmobile);
    vf = (ViewFlipper) findViewById(R.id.vf);
    client = new DefaultHttpClient();
    lv = (ListView) findViewById(R.id.lv);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    np1 = (NumberPicker) findViewById(R.id.np1);
    np1.setMinValue(1);
    np1.setMaxValue(400);
    //np1.setOnValueChangedListener;    
    //np1.setOnValueChangedListener(onValueChange);

}
有人知道一种简单的方法来实现这个监听器,而不让我的主要活动实现NumberPicker.OnValueChangeListener吗


注意:我反对让我的主活动实现NumberPicker.OnValueChangeListener的唯一原因是,这样我必须将main设置为abstract,而我的应用程序将无法运行。

您将像单击按钮上的侦听器一样执行此操作

np1.setOnValueChangedListener(new OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        // do something here
    }
});
可以在此处找到一个完全有效的示例:

一些文体要点

  • Main应该大写,使其更像MainActivity那样具有描述性是一个很好的做法
  • 仅在必要时使用字段。我猜您没有使用onCreate()之外的大多数变量,所以请将它们改为局部变量
  • < List> TopVIEW总成本是你的最佳命名变量:考虑使用冗长的名字。当你在很长一段时间内第一次回首这段代码时,你会在6个月内感谢自己。
  • 并没有神奇的值(或字符串)!为你们的最小值和最大值创建一个常量,那个些值应该是你们的字段的私有静态最终整型
  • 在Eclipse设置中,首选项中的java保存操作将在保存时自动格式化所有代码行

当然,所有这些都不会使你的代码运行得更好,但它肯定会更容易阅读。

比尔·莫特你是个天才。谢谢你抽出时间!!!你刚刚停止了一个小时的故障排除!!我们都在那里。相信我;)当我回顾我早期的一些问题时,我很害怕它们仍然存在于公共场合消费!哈哈哈哈再次感谢。我也很欣赏样式指针。我很久没有上过编码课了,我忘记了很多类似的事情。我已经实现了一些指针。
np1.setOnValueChangedListener(new OnValueChangeListener() {
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
        // do something here
    }
});