在 Android 中将 OnValueChange 实现为 NumberPicker

Posted

技术标签:

【中文标题】在 Android 中将 OnValueChange 实现为 NumberPicker【英文标题】:Implementing OnValueChange to a NumberPicker in Android 【发布时间】:2013-04-05 16:12:00 【问题描述】:

我正在尝试将 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);



尝试测试它的功能,我一直在使用它

public void onValueChange (NumberPicker np1, int oldVal, int newVal) 
    Log.v("NumberPicker", np1.getValue() +"");

有没有人知道在不让我的主要活动实现 NumberPicker.OnValueChangeListener 的情况下实现此侦听器的简单方法?

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

【问题讨论】:

【参考方案1】:

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

np1.setOnValueChangedListener(new OnValueChangeListener() 
    @Override
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) 
        // do something here
    
);

可以在此处找到完整的示例:http://samplecodez.com/android/numberpicker.php

一些风格点...

Main 应该大写,最好让它像 MainActivity 那样更具描述性。 仅在必要时使用字段。我猜你并没有在 onCreate() 之外使用这些变量中的大部分变量,所以改为使用局部变量。 TextView totalCost 是您最好的命名变量 :) 考虑使用详细名称。当您在很长一段时间内第一次回顾这段代码时,您会在 6 个月后感谢自己。 没有魔法值(或字符串)!为您的最小值和最大值创建一个常量,这些常量应该是您的字段的私有静态 final int。 在 Eclipse 中,设置首选项中的 java 保存操作以在您保存时自动格式化所有代码行。

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

【讨论】:

比尔莫特你是个天才。感谢您的时间!!!您刚刚停止了一个小时的故障排除! 我们都去过那里。相信我;)当我回顾我早期的一些问题时,我很害怕它们仍然存在供公众消费! 哈哈哈哈哈哈再次感谢。我也很欣赏样式指针。自从我参加编码课程以来已经有很长时间了,我已经忘记了很多类似的事情。我已经实现了一些指针。

以上是关于在 Android 中将 OnValueChange 实现为 NumberPicker的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在android中将音频合并到视频? [关闭]

在android中将形状背景设置为透明

无法在 Android 中将图像导出到 excel

在 Android 中将位图转换为灰度

如何在android中将图标转换为位图? [复制]

在android中将shape文件或OSM文件显示为地图