java - 从 Android 中的自定义对象动态更新 textView

标签 java android textview

我想从自定义对象内部更新主 Activity 中的 TextView。

自定义对象是一个从头开始编写的数字选择器。它有一个 EditText 和 2 个按钮 (+/-)。 我的目的是,当用户按下 + 或 - 按钮时,TextView 将使用该值进行更新。

现在我可以想到两种可能的解决方案:

  1. 当按下 + 或 - 按钮(在 onClickListener 内)时,自定义对象会更新 TextView。
  2. 我定义了另一个类来扩展自定义选择器,并具有更新 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">

Here a screenshot

我希望每次选择器之一更改其值时,右上角的 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/

相关文章:

java - 除了行和列之外,如何跟踪 token 的偏移位置?

android - GCM 一段时间后停止工作

java - TextView 文本超出范围

java - 今天的纪元时间与当前时间无关

Android获取Fragment宽度

android - 如果两个 TextView 重叠,则使 TextView 可滚动

java - 在 Java 中使用 StringTokenizer 解析 double 变量时出现精度错误

java - 如何避免此类中刷新 token 的重复代码?

Java,如何检查两个二维数组是否包含相同的值

android - APDU 命令使用三星 Galaxy S4 从支持 visa Paywave NFC 的卡中读取信用卡数据