首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓SeekBar扩展

安卓SeekBar扩展
EN

Stack Overflow用户
提问于 2012-12-17 23:39:53
回答 1查看 998关注 0票数 0

我的activity (4)上有多个搜索栏,每个搜索栏都有一个textView,用来显示每个SeekBar的进度。我想扩展SeekBar类,并在它的构造函数中添加一个TextView参数,这样我就可以绑定两个->、SeekBar和TextView。下面是我的扩展SeekBar类:

代码语言:javascript
复制
import android.content.Context;
import android.widget.SeekBar;
import android.widget.TextView;

public class SeekBarPlus extends SeekBar {
    private TextView numberOfDrills;

    public SeekBarPlus(Context context, TextView text) {
        super(context);
        // TODO Auto-generated constructor stub
        numberOfDrills = (TextView) text;   
    }

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

    }

    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub

    }

    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
        // TODO Auto-generated method stub
        numberOfDrills.setText(progress); 
    }

} 

上下文选项是什么?

下面是我的MainActivity:

代码语言:javascript
复制
package com.simplemathgame;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import com.simplemathgame.SeekBarPlus;

public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView numberOfAddDrills = (TextView) findViewById(R.id.add_drills_number);
        TextView numberOfSubDrills = (TextView) findViewById(R.id.sub_drills_number);
        TextView numberOfMulDrills = (TextView) findViewById(R.id.mul_drills_number);
        TextView numberOfDivDrills = (TextView) findViewById(R.id.div_drills_number);

                SeekBarPlus addSeekBar = SeekBarPlus((SeekBar) findViewById(R.id.add_seek_bar), numberOfAddDrills);
    SeekBarPlus subSeekBar = SeekBarPlus((SeekBar) findViewById(R.id.sub_seek_bar), numberOfAddDrills);
    SeekBarPlus mulSeekBar1 = SeekBarPlus((SeekBar) findViewById(R.id.mul_seek_bar), numberOfAddDrills);
    SeekBarPlus divSeekBar1 = SeekBarPlus((SeekBar) findViewById(R.id.div_seek_bar), numberOfAddDrills);

    }   
}

我不知道该怎么做,赖特!任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2012-12-17 23:44:47

尝试在自定义SeekBar中使用设置器而不是构造函数:

代码语言:javascript
复制
public void setTextView(TextView text) {
    numberOfDrills = text;   
}

然后在你的活动中,使用

代码语言:javascript
复制
SeekBarPlus subSeekBar = (SeekBarPlus) findViewById(R.id.sub_seek_bar);
subSeekBar.setTextView(numberOfAddDrills);

你也可以在OnSeekBarChangeListener中使用普通的Seekbar:

代码语言:javascript
复制
SeekBar subSeekBar = (SeekBar) findViewById(R.id.sub_seek_bar);
subSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) { }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) { }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                numberOfDrills.setText(String.valueOf(progress)); 
            }
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13917239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档