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

如何传递字符串值作为Java命令?Android动态显示EditText方法咨询

问题1:是否存在将字符串的值作为Java命令进行传递的方法?

Java没有原生语法支持直接将字符串作为Java代码命令执行,但可以通过以下几种方式实现类似效果:

  • 反射机制:如果字符串对应类名、方法名或字段名,可通过反射API调用目标方法、访问字段或创建实例。
  • Java ScriptEngine:借助javax.script包中的ScriptEngine(比如Nashorn引擎),可以执行字符串形式的Java代码片段。
  • 执行系统命令:如果字符串是系统级命令,可通过Runtime.getRuntime().exec()或ProcessBuilder执行外部命令,但这不属于执行Java代码范畴。
问题2:根据整数值动态显示指定EditText控件

你的代码核心问题是试图对字符串对象调用setVisibility方法,这是无效的——字符串不是EditText控件实例。以下是两种可行的实现方案:

方案1:使用数组存储控件(推荐)

将所有EditText控件存入数组,通过遍历数组实现批量操作,代码简洁且性能稳定:

// 在类中定义数组,初始化时填充控件
private EditText[] editTextList;

// 在Activity的onCreate或Fragment的onViewCreated中初始化数组
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    // 假设L1-L10已经通过findViewById绑定到变量
    editTextList = new EditText[]{L1, L2, L3, L4, L5, L6, L7, L8, L9, L10};
}

public void displaydynamicdata(int count) {
    // 先将所有控件设为隐藏(按需选择,若初始已隐藏可省略)
    for (EditText et : editTextList) {
        et.setVisibility(View.GONE);
    }
    // 显示前count个控件,同时避免数组越界
    for (int i = 0; i < count && i < editTextList.length; i++) {
        editTextList[i].setVisibility(View.VISIBLE);
    }
}

方案2:使用反射(不推荐)

若不想维护数组,可通过反射获取控件实例,但反射性能较差且易因字段名错误引发异常,仅作为备选方案:

public void displaydynamicdata(int count) {
    try {
        // 显示前count个控件
        for (int i = 1; i <= count; i++) {
            Field field = getClass().getDeclaredField("L" + i);
            EditText et = (EditText) field.get(this);
            if (et != null) {
                et.setVisibility(View.VISIBLE);
            }
        }
        // 隐藏剩余控件(按需选择)
        for (int i = count + 1; i <= 10; i++) {
            Field field = getClass().getDeclaredField("L" + i);
            EditText et = (EditText) field.get(this);
            if (et != null) {
                et.setVisibility(View.GONE);
            }
        }
    } catch (NoSuchFieldException | IllegalAccessException e) {
        e.printStackTrace();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:15:33