Android程序员的上限,关于android:Seekbar进度级别,上限为0到最大值之间

您好,我在Android中有一个最大进度值为100的搜索栏。 我希望搜寻栏只能在0到100之间上升到50的值。 它不允许将beyound值提高50。我的逻辑是,我不想更改seekbar的进度最大值。

请帮助我如何在android的seekbar中做到这一点。 提前致谢。

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

sb1=(SeekBar) findViewById(R.id.seekBar1);

sb2=(SeekBar) findViewById(R.id.seekBar2);

sb3=(SeekBar) findViewById(R.id.seekBar3);

tv1=(TextView) findViewById(R.id.textView1);

tv2=(TextView) findViewById(R.id.textView2);

tv3=(TextView) findViewById(R.id.textView3);

tvremaining=(TextView) findViewById(R.id.textView4);

tvused=(TextView) findViewById(R.id.textView5);

sb1.setOnSeekBarChangeListener(this);

sb2.setOnSeekBarChangeListener(this);

sb3.setOnSeekBarChangeListener(this);

total=100;

used=0;

remaining=total-used;

tvremaining.setText(Integer.toString(remaining));

tvused.setText(Integer.toString(used));

}

@Override

public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2)

{

switch (arg0.getId())

{

case R.id.seekBar1:

if(arg2)

{

tv1.setText(Integer.toString(arg1));

//arg0.setProgressDrawable(getResources().getDrawable(R.drawable.progress_normal));

}

break;

case R.id.seekBar2:

if(arg2)

{

tv2.setText(Integer.toString(arg1));

//arg0.setProgressDrawable(getResources().getDrawable(R.drawable.progress_normal));

}

break;

case R.id.seekBar3:

if(arg2)

{

tv3.setText(Integer.toString(arg1));

//arg0.setProgressDrawable(getResources().getDrawable(R.drawable.progress_normal));

}

break;

}

progress=arg1;

}

@Override

public void onStartTrackingTouch(SeekBar arg0)

{

//arg0.setMax(remaining);

// TODO Auto-generated method stub

}

@Override

public void onStopTrackingTouch(SeekBar arg0)

{

switch (arg0.getId())

{

case R.id.seekBar1:

//sb2.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

//sb3.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

sb2.setProgress(progress);

sb3.setProgress(progress);

break;

case R.id.seekBar2:

//sb1.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

//sb3.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

sb1.setProgress(progress);

sb3.setProgress(progress);

break;

case R.id.seekBar3:

//sb1.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

//sb2.setProgressDrawable(getResources().getDrawable(R.drawable.progress_applied));

sb1.setProgress(progress);

sb2.setProgress(progress);

break;

}

used= (Integer.parseInt(tv1.getText().toString()))+(Integer.parseInt(tv2.getText().toString()))+(Integer.parseInt(tv3.getText().toString()));

remaining = total-used;

tvremaining.setText(Integer.toString(remaining));

tvused.setText(Integer.toString(used));

// TODO Auto-generated method stub

}

显示一些代码将有助于我们更好地确定问题。

您忘记了该部分到目前为止您已经尝试过的内容。

尝试这个

final SeekBar mSeekBar=(SeekBar) findViewById(R.id.SeekBar);

mSeekBar.setMax(100);

mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

// TODO Auto-generated method stub

}

@Override

public void onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

if(progress>=50)

{

mSeekBar.setProgress(50);

}

// TODO Auto-generated method stub

}

});

非常感谢它为我工作.......

然后别忘了接受答案... :)

meta.stackexchange.com/a/5235/189428

我为逻辑实现了以下代码:

public class MainActivity extends Activity implements OnSeekBarChangeListener{

public SeekBar sb1,sb2,sb3;

public TextView tv1,tv2,tv3,tvremaining,tvused;

public int remaining, total,used;

public int progress;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

sb1=(SeekBar) findViewById(R.id.seekBar1);

sb2=(SeekBar) findViewById(R.id.seekBar2);

sb3=(SeekBar) findViewById(R.id.seekBar3);

tv1=(TextView) findViewById(R.id.textView1);

tv2=(TextView) findViewById(R.id.textView2);

tv3=(TextView) findViewById(R.id.textView3);

tvremaining=(TextView) findViewById(R.id.textView4);

tvused=(TextView) findViewById(R.id.textView5);

sb1.setOnSeekBarChangeListener(this);

sb2.setOnSeekBarChangeListener(this);

sb3.setOnSeekBarChangeListener(this);

total=100;

used=0;

remaining=total-used;

tvremaining.setText(Integer.toString(remaining));

tvused.setText(Integer.toString(used));

}

@Override

public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2)

{

switch (arg0.getId())

{

case R.id.seekBar1:

if((arg1-progress)<=remaining || progress>=arg1)

tv1.setText(Integer.toString(arg1));

else

{

arg0.setProgress(progress);

tv1.setText(Integer.toString(progress));

}

break;

case R.id.seekBar2:

if((arg1-progress)<=remaining || progress>arg1)

tv2.setText(Integer.toString(arg1));

else

{

arg0.setProgress(progress);

tv2.setText(Integer.toString(progress));

}

break;

case R.id.seekBar3:

if((arg1-progress)<=remaining || progress>arg1)

tv3.setText(Integer.toString(arg1));

else

{

arg0.setProgress(progress);

tv3.setText(Integer.toString(progress));

}

break;

}

used= (Integer.parseInt(tv1.getText().toString()))+(Integer.parseInt(tv2.getText().toString()))+(Integer.parseInt(tv3.getText().toString()));

remaining = total-used;

tvremaining.setText(Integer.toString(remaining));

tvused.setText(Integer.toString(used));

}

@Override

public void onStartTrackingTouch(SeekBar arg0)

{

progress= arg0.getProgress();

//arg0.setMax(remaining);

// TODO Auto-generated method stub

}

@Override

public void onStopTrackingTouch(SeekBar arg0)

{

// TODO Auto-generated method stub

} }

以下是布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/seekBar1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_alignParentTop="true"

android:layout_margin="40dp" />

android:id="@+id/seekBar2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_below="@+id/seekBar1"

android:layout_margin="40dp" />

android:id="@+id/seekBar3"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_below="@+id/seekBar2"

android:layout_margin="40dp"  />

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_below="@+id/seekBar1"

android:text="0" />

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_below="@+id/seekBar2"

android:text="0" />

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_below="@+id/seekBar3"

android:text="0" />

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_below="@+id/textView3"

android:layout_marginTop="108dp"

android:text="TextView" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值