首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SeekBar说明

SeekBar说明
EN

Stack Overflow用户
提问于 2012-02-03 19:48:51
回答 4查看 7.3K关注 0票数 0

我注意到许多人寻找相同问题的答案,但他们总是有不同的结果和不完整的,我希望有人帮助我解释得尽可能简单,以帮助所有的用户。

我现在将开始编程一个android和需要帮助,如下所示:

我有一个id = TextView的值和一个id = seekbar的值。

需要搜索栏0-200而不是1 in 1,在TextView中显示​​的值。为了纠正灵敏度的问题,我想知道如何放置两个按钮+和-来增加或减少a。

我代表我的大学班级感谢你。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-03 20:51:14

在提出这样一个一般性问题之前,您应该先阅读文档。事实上,我想用外行的话来回答这个问题。只要把搜索栏想象成一个简单的传感器就行了。它可以触发像onProgressChanged()这样的事件。也就是说,当搜索栏的进度改变时,搜索栏的界面可以告诉我们。因此,我们可以在Android提供的回调中进行一些操作。所以看一下代码,就会发现这就是你要找的东西。这是我为这个问题创建的测试应用程序。

代码语言:javascript
复制
public class SeekbarActivity extends Activity implements SeekBar.OnSeekBarChangeListener    {
    private SeekBar seekbar;
    private TextView value;
    private Button plus,minus;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        value = (TextView) findViewById(R.id.value);
        seekbar = (SeekBar) findViewById(R.id.seekbar);
        plus = (Button) findViewById(R.id.plus);
        minus = (Button) findViewById(R.id.minus);
        seekbar.setOnSeekBarChangeListener(this);
        seekbar.setMax(201);
        plus.setOnClickListener(new OnClickListener()   {
            @Override
            public void onClick(View v) {seekbar.setProgress((int)seekbar.getProgress() + 1);}});
        minus.setOnClickListener(new OnClickListener()  {
            @Override
            public void onClick(View v) {seekbar.setProgress((int)seekbar.getProgress() - 1);}});
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int progress, boolean fromTouch) {
        value.setText(String.valueOf(progress));
    }
    @Override
    public void onStartTrackingTouch(SeekBar arg0) {}
    @Override
    public void onStopTrackingTouch(SeekBar arg0) {}
}

这是用于此应用程序的XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/value"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Progress" />
    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/plus"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="+" />
    <Button
        android:id="@+id/minus"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="-" />
</LinearLayout>

如果您对此代码有任何疑问,请随时询问。顺便说一下,这不是一个代码生成论坛!看起来我违反了特种部队的一个条款。:)

票数 2
EN

Stack Overflow用户

发布于 2012-02-03 20:03:22

要侦听查找位置更改,请使用

代码语言:javascript
复制
onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
    {
        txtProgress.setText(""+progress);
    }
});

在+和按钮上单击implement onClickListener,然后在onClick method中编写

代码语言:javascript
复制
int newProgress=seekBar.getProgress()+10;
seekBar.setProgress(""+newProgress);
票数 1
EN

Stack Overflow用户

发布于 2012-02-03 20:11:23

假设这就是你想要的UI (相当糟糕的ASCII艺术)

代码语言:javascript
复制
                +-------------------+
                | Progress bar value|
                |     TextView      |
                +-------------------+
+-----+              Progress Bar               +-----+
|  -  | |--------------------------------------||  +  |
+-----+                                         +-----+

实现这一点所需的布局(伪代码)

代码语言:javascript
复制
<RelativeLayout>
    <TextView id=progValue
     alignHorizontalCenter=true>
    <ProgressBar id=progBar
     alignHorizontalCenter=true
     layout_below=id/progValue
     android:max=200>
    <Button id=negative
     layout_toLeftof=id/progBar>
    <Button id=positive
     layout_toRightof =id/progBar>
</RelativeLayout>

进度条的侦听器(伪代码)

代码语言:javascript
复制
progBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
{ 
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
    { 
        progValue.setText(""+progress); 
    } 
}); 

按钮的侦听器(伪代码)

代码语言:javascript
复制
OnClickListener(){
    public void onClick(View v) { 
        if(positive == v){
            progBar.setProgress(progBar.getProgress()+1);
        }else if (negative == v){
            progBar.setProgress(progBar.getProgress()-1);
        }
    }
}               
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9128199

复制
相关文章

相似问题

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