我注意到许多人寻找相同问题的答案,但他们总是有不同的结果和不完整的,我希望有人帮助我解释得尽可能简单,以帮助所有的用户。
我现在将开始编程一个android和需要帮助,如下所示:
我有一个id = TextView的值和一个id = seekbar的值。
需要搜索栏0-200而不是1 in 1,在TextView中显示的值。为了纠正灵敏度的问题,我想知道如何放置两个按钮+和-来增加或减少a。
我代表我的大学班级感谢你。
发布于 2012-02-03 20:51:14
在提出这样一个一般性问题之前,您应该先阅读文档。事实上,我想用外行的话来回答这个问题。只要把搜索栏想象成一个简单的传感器就行了。它可以触发像onProgressChanged()这样的事件。也就是说,当搜索栏的进度改变时,搜索栏的界面可以告诉我们。因此,我们可以在Android提供的回调中进行一些操作。所以看一下代码,就会发现这就是你要找的东西。这是我为这个问题创建的测试应用程序。
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
<?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>如果您对此代码有任何疑问,请随时询问。顺便说一下,这不是一个代码生成论坛!看起来我违反了特种部队的一个条款。:)
发布于 2012-02-03 20:03:22
要侦听查找位置更改,请使用
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中编写
int newProgress=seekBar.getProgress()+10;
seekBar.setProgress(""+newProgress);发布于 2012-02-03 20:11:23
假设这就是你想要的UI (相当糟糕的ASCII艺术)
+-------------------+
| Progress bar value|
| TextView |
+-------------------+
+-----+ Progress Bar +-----+
| - | |--------------------------------------|| + |
+-----+ +-----+实现这一点所需的布局(伪代码)
<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>进度条的侦听器(伪代码)
progBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
progValue.setText(""+progress);
}
}); 按钮的侦听器(伪代码)
OnClickListener(){
public void onClick(View v) {
if(positive == v){
progBar.setProgress(progBar.getProgress()+1);
}else if (negative == v){
progBar.setProgress(progBar.getProgress()-1);
}
}
} https://stackoverflow.com/questions/9128199
复制相似问题