苦苦搜寻也没有找到Android的EditText与SeekBar联动例子,吐血分享哈!
来源:互联网 发布:招募淘宝客 编辑:程序博客网 时间:2024/04/30 15:08
苦苦搜寻也没有找到Android的EditText与SeekBar联动例子,吐血分享哈!
private boolean notHandleAfterTextChangedEvent = false;
private boolean changeFromSeekBar = false;
private boolean changeFromEditText = false;
这几个变量是关键,防止陷入死循环。
代码如下:
private EditTextetImageAdjustment = null;
private SeekBarskbImageAdjustment = null;
private boolean notHandleAfterTextChangedEvent =false;
private boolean changeFromSeekBar = false;
private boolean changeFromEditText = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pick_image);
……
……
etImageAdjustment = (EditText) findViewById(R.id.pick_image_etImageAdjustment);
etImageAdjustment.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s,int start, int before,
intcount) {
// TODO自动生成的方法存根
}
@Override
public void beforeTextChanged(CharSequence s,int start, int count,
intafter) {
// TODO自动生成的方法存根
}
@Override
public void afterTextChanged(Editable s) {
// TODO自动生成的方法存根
if (notHandleAfterTextChangedEvent) {
notHandleAfterTextChangedEvent =false;
// 光标置最后
CharSequence text =etImageAdjustment.getText();
if (textinstanceof Spannable) {
Spannable spanText = (Spannable)text;
Selection.setSelection(spanText,text.length());
}
return;
}
if (s ==null) {
return;
}
Integer value = 0;
if (s.toString().trim().equals("")) {
notHandleAfterTextChangedEvent =true;
etImageAdjustment.setText("");
} else {
value = Integer.parseInt(s.toString());
}
if (value !=null) {
// 上下限
if (value < 0) {
value = 0;
} elseif (value > 99) {
value = 99;
}
notHandleAfterTextChangedEvent =true;
etImageAdjustment.setText(Integer.toString(value));
try {
if (!changeFromSeekBar) {
changeFromEditText =true;
skbImageAdjustment.setProgress(value);
} else {
changeFromSeekBar =false;
}
} catch (NumberFormatExceptione) {
Toast.makeText(getApplicationContext(),
"writeyour number", Toast.LENGTH_LONG).show();
}
}
}
});
skbImageAdjustment = (SeekBar) findViewById(R.id.pick_image_skbImageAdjustment);
skbImageAdjustment
.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
publicvoid onStopTrackingTouch(SeekBar seekBar) {
// TODO自动生成的方法存根
}
@Override
publicvoid onStartTrackingTouch(SeekBar seekBar) {
// TODO自动生成的方法存根
}
@Override
publicvoid onProgressChanged(SeekBar seekBar,
intprogress, booleanfromUser) {
// TODO自动生成的方法存根
if (fromUser) {
if (!changeFromEditText) {
changeFromSeekBar =true;
etImageAdjustment.setText(Integer
.toString(progress));
} else {
changeFromEditText =false;
}
……
}
}
});
}
- 苦苦搜寻也没有找到Android的EditText与SeekBar联动例子,吐血分享哈!
- SeekBar与TextView简单联动
- 一位Android开发者吐血分享面试的点点滴滴
- Android 让你的SeekBar 也支持长按事件
- Android EditText与Button和Button点击出现的Dialog联动问题
- viewpager与radiogroup联动的例子
- Android组件的使用:ProgressBar与SeekBar
- 命令与文件的搜寻
- 指令与档案的搜寻
- Android里面的EditText默认没有焦点
- 转载:老师也吐血的试卷
- 【吐血分享】Android开源项目集锦
- android editText实现没有边框,没有背景的效果
- Edittext和TextView的联动
- 放hi考试院苦苦与图看的图样
- 【SeekBar】Android 自定义漂亮的SeekBar样式
- android 的TextView与EditText
- Android SeekBar的使用
- 使用python统计出txt文档中含有某个单词的个数
- pat1040Longest Symmetric String (25)
- 计算机网络
- tableView内置collectionView,动态添加collectionView图片出现图片重叠
- oracle回顾(一)
- 苦苦搜寻也没有找到Android的EditText与SeekBar联动例子,吐血分享哈!
- u-boot启动内核所要传的参数
- UFT
- STM32 的三种不同启动模式
- 软考(二):网络中的那些事儿
- android:安卓中5中网络请求库之Vellory OkHttp Retrofit
- ViewGroup与测量相关的几个方法
- 欢迎使用CSDN-markdown编辑器
- 对Matrix中preTranslate()和postTranslate()的理解