java - Android:多次使用setOnSeekBarChangeListner方法

标签 java android android-seekbar

我创建了一个名为 AndroidSeekBarJava 函数,它接受一个 seekbar_id 、一个 textview_id 和一个类型。类型变量用于为不同的 SeekBars 调用更改 TextView 值,这是他的代码:

public AndroidSeekBar(SeekBar id1, TextView textid,int type){
/** Called when the activity is first created. */

    PRICEbar = id1; // make seekbar object
    SeekValue = textid;
    int progress = PRICEbar.getProgress();
    if(type==1)
        progress = progress/5;
    else if(type==2)
        progress = progress*6;



    PRICEbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){ 

           @Override 
           public void onProgressChanged(SeekBar seekBar, int progress, 
             boolean fromUser) { 
            // TODO Auto-generated method stub 

                        SeekValue.setText(String.valueOf(progress)); 

           } 

           @Override 
           public void onStartTrackingTouch(SeekBar seekBar) { 
            // TODO Auto-generated method stub 
           } 

           @Override 
           public void onStopTrackingTouch(SeekBar seekBar) { 
            // TODO Auto-generated method stub 
           } 
               });
}

如何将 type 参数传递给 setOnSeekBarChangeListener 函数,以便为不同的 SeekBar 设置不同的字符串值。例如,在 40% 的进度下,如果 type = 1 那么它应该设置 40/5= 8 Meter 而在 type =2 上它应该设置 40 *6 = 240 公斤

最佳答案

How can I pass type parameter into setOnSeekBarChangeListener function in order to set different string values for different SeekBars

使用 SeekBar.setTag(value) 在 onProgressChanged 方法中访问 type 值:

PRICEbar.setTag(String.valueOf(type));
PRICEbar.setOnSeekBarChangeListener(new 
                SeekBar.OnSeekBarChangeListener(){ 

 @Override 
    public void onProgressChanged(SeekBar seekBar, 
      int progress, boolean fromUser) { 
             int type=Integer.parseInt(seekBar.getTag().toString());

 }
... 
}

关于java - Android:多次使用setOnSeekBarChangeListner方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27938732/

相关文章:

Android - 样式搜索栏

android - 我们如何创建如下 UI,如 Native Android 所示

java - 如何将 setText 设置为所有 SeekBar 进度值的总和?

java - 在 Java 中退出一个 "for loop"

java - in.next() 在做什么?

android - 有没有办法在给定的 classes.dex 文件中获取类名?

java - Android Architecture Components如何实现对象与ViewModel的双向绑定(bind)

java - LinkedHashMap 或 Map

java - 使用自动换行将字符串 ArrayList 打印到 PrintWriter

Android - 位图 tileMode ="repeat"无法正常工作