我想从自定义对象内部更新主 Activity 中的 TextView。
自定义对象是一个从头开始编写的数字选择器。它有一个 EditText 和 2 个按钮 (+/-)。 我的目的是,当用户按下 + 或 - 按钮时,TextView 将使用该值进行更新。
现在我可以想到两种可能的解决方案:
- 当按下 + 或 - 按钮(在 onClickListener 内)时,自定义对象会更新 TextView。
- 我定义了另一个类来扩展自定义选择器,并具有更新 TextView 的逻辑。
但我的问题是我想将 textView 逻辑保留在自定义选择器之外(因此是否可以在 Activity 内具有更新功能)。 这个问题有解决办法吗?
custompicker xml代码是:
<org.croncalc.MyPicker android:id="@+id/hourpicker"
android:orientation="vertical"
android:layout_width="65dp"
croncalc:maxnumber="24"
croncalc:minnumber="1"
croncalc:step="5"
croncalc:cycle="true"
android:layout_height="wrap_content">
我希望每次选择器之一更改其值时,右上角的 TextView 都会更新。
如果这里有用,+/- 按钮的 onClick() 代码:
OnClickListener clickListener = new OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.decbtn:
step(-1);
break;
case R.id.incbtn:
default:
step(1);
break;
}
}
};
private void step(int step) {
current += step;
if (step > 0) {
decButton.setEnabled(true);
if ( current > maxNumber) {
if(cycle){
current-=maxNumber;
} else {
current=maxNumber;
incButton.setEnabled(false);
incButton.setPressed(false);
}
}
} else {
incButton.setEnabled(true);
if ( current < minNumber) {
if(cycle){
current+= maxNumber;
} else {
current=minNumber;
decButton.setEnabled(false);
decButton.setPressed(false);
}
}
}
pickerText.setText(Integer.toString(current));
}
提前致谢。 伊万
最佳答案
TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view,int hourOfDay, int minute) {
//Update Here textView when you click on dialog
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, false);
}
return null;
}
希望对你有帮助
关于java - 从 Android 中的自定义对象动态更新 textView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160859/