You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Fragment Activity中如何获取TextView数值并比较后修改其他控件文本

实现方案

1. 布局文件配置

首先在你的FragmentActivity对应的XML布局文件中,给两个TextView设置唯一ID,示例如下:

<!-- 省略其他布局控件 -->
<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="30" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp" />

2. FragmentActivity 逻辑编写

Java 实现示例

在Activity的onCreate方法中完成控件绑定、数值读取和判断逻辑:

import android.os.Bundle;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 绑定两个TextView实例
        TextView textView1 = findViewById(R.id.textView1);
        TextView textView2 = findViewById(R.id.textView2);

        // 读取textView1的内容并转为数值,异常处理避免非数字内容导致崩溃
        int value1 = 0;
        try {
            String text1Content = textView1.getText().toString().trim();
            value1 = Integer.parseInt(text1Content);
        } catch (NumberFormatException e) {
            // 非数字内容时可自行调整默认逻辑,这里默认按不满足条件处理
            e.printStackTrace();
        }

        // 按条件设置textView2的文本
        if (value1 < 25 || value1 > 100) {
            textView2.setText("Hello");
        } else {
            textView2.setText("Goodbye");
        }
    }
}

Kotlin 实现示例

import android.os.Bundle
import android.widget.TextView
import androidx.fragment.app.FragmentActivity

class MainActivity : FragmentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val textView1 = findViewById<TextView>(R.id.textView1)
        val textView2 = findViewById<TextView>(R.id.textView2)

        val value1 = try {
            textView1.text.toString().trim().toInt()
        } catch (e: NumberFormatException) {
            0 // 非数字时的默认值
        }

        textView2.text = if (value1 < 25 || value1 > 100) "Hello" else "Goodbye"
    }
}

注意事项

  • 如果textView1的数值是动态变化的,需要在数值更新的回调处重复执行上述判断逻辑,才能同步更新textView2的文本
  • 如果textView1的内容包含小数,可将Integer.parseInt替换为Double.parseDouble做浮点数判断

内容的提问来源于stack exchange,提问作者ElG0hary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 07:09:03