java - 如果为空,则禁用 EditText 数组索引

标签 java android

如果没有要显示的文本,我想在以下代码中禁用并隐藏这些 edittext 实例。我已经尝试了一些东西,例如 XML 中的 Visabilty.Gone 和 focusable:false 但没有骰子:

代码:

   private EditText scorecardCourse;
private EditText scorecardDate;

private SQLiteHandler db;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    db = new SQLiteHandler(getActivity().getApplicationContext());

    HashMap<String, String> rounds = db.getRoundsDetails();

    if(db.getRoundsDetails().size() != 0){

        View view = inflater.inflate(R.layout.fragment_scorecards, container, false);

        ((MainActivity) getActivity())
                .setActionBarTitle("Scorecard");

        scorecardCourse = (EditText) view.findViewById(R.id.course);
        scorecardCourse.setEnabled(false);
        scorecardDate = (EditText) view.findViewById(R.id.date);
        scorecardDate.setEnabled(false);


        final String course = rounds.get("courseName");
        final String date = rounds.get("date");

            scorecardCourse.setText(course);
            scorecardDate.setText(date);


            ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
            arrayList = db.getAllHoles();

            if(arrayList.size() != 0){

            EditText []holeNum = new EditText[18];
            holeNum[0]=(EditText) view.findViewById(R.id.scorecardHoleNum1);
            holeNum[1]=(EditText) view.findViewById(R.id.scorecardHoleNum2);
            holeNum[2]=(EditText) view.findViewById(R.id.scorecardHoleNum3);
            holeNum[3]=(EditText) view.findViewById(R.id.scorecardHoleNum4);
            holeNum[4]=(EditText) view.findViewById(R.id.scorecardHoleNum5);
            holeNum[5]=(EditText) view.findViewById(R.id.scorecardHoleNum6);
            holeNum[6]=(EditText) view.findViewById(R.id.scorecardHoleNum7);
            holeNum[7]=(EditText) view.findViewById(R.id.scorecardHoleNum8);
            holeNum[8]=(EditText) view.findViewById(R.id.scorecardHoleNum9);
            holeNum[9]=(EditText) view.findViewById(R.id.scorecardHoleNum10);
            holeNum[10]=(EditText) view.findViewById(R.id.scorecardHoleNum11);
            holeNum[11]=(EditText) view.findViewById(R.id.scorecardHoleNum12);
            holeNum[12]=(EditText) view.findViewById(R.id.scorecardHoleNum13);
            holeNum[13]=(EditText) view.findViewById(R.id.scorecardHoleNum14);
            holeNum[14]=(EditText) view.findViewById(R.id.scorecardHoleNum15);
            holeNum[15]=(EditText) view.findViewById(R.id.scorecardHoleNum16);
            holeNum[16]=(EditText) view.findViewById(R.id.scorecardHoleNum17);
            holeNum[17]=(EditText) view.findViewById(R.id.scorecardHoleNum18);

            EditText []holeYards = new EditText[18];
            holeYards[0]=(EditText) view.findViewById(R.id.scorecardYards1);
            holeYards[1]=(EditText) view.findViewById(R.id.scorecardYards2);
            holeYards[2]=(EditText) view.findViewById(R.id.scorecardYards3);
            holeYards[3]=(EditText) view.findViewById(R.id.scorecardYards4);
            holeYards[4]=(EditText) view.findViewById(R.id.scorecardYards5);
            holeYards[5]=(EditText) view.findViewById(R.id.scorecardYards6);
            holeYards[6]=(EditText) view.findViewById(R.id.scorecardYards7);
            holeYards[7]=(EditText) view.findViewById(R.id.scorecardYards8);
            holeYards[8]=(EditText) view.findViewById(R.id.scorecardYards9);
            holeYards[9]=(EditText) view.findViewById(R.id.scorecardYards10);
            holeYards[10]=(EditText) view.findViewById(R.id.scorecardYards11);
            holeYards[11]=(EditText) view.findViewById(R.id.scorecardYards12);
            holeYards[12]=(EditText) view.findViewById(R.id.scorecardYards13);
            holeYards[13]=(EditText) view.findViewById(R.id.scorecardYards14);
            holeYards[14]=(EditText) view.findViewById(R.id.scorecardYards15);
            holeYards[15]=(EditText) view.findViewById(R.id.scorecardYards16);
            holeYards[16]=(EditText) view.findViewById(R.id.scorecardYards17);
            holeYards[17]=(EditText) view.findViewById(R.id.scorecardYards18);

            EditText []holePar = new EditText[18];
            holePar[0]=(EditText) view.findViewById(R.id.scorecardPar1);
            holePar[1]=(EditText) view.findViewById(R.id.scorecardPar2);
            holePar[2]=(EditText) view.findViewById(R.id.scorecardPar3);
            holePar[3]=(EditText) view.findViewById(R.id.scorecardPar4);
            holePar[4]=(EditText) view.findViewById(R.id.scorecardPar5);
            holePar[5]=(EditText) view.findViewById(R.id.scorecardPar6);
            holePar[6]=(EditText) view.findViewById(R.id.scorecardPar7);
            holePar[7]=(EditText) view.findViewById(R.id.scorecardPar8);
            holePar[8]=(EditText) view.findViewById(R.id.scorecardPar9);
            holePar[9]=(EditText) view.findViewById(R.id.scorecardPar10);
            holePar[10]=(EditText) view.findViewById(R.id.scorecardPar11);
            holePar[11]=(EditText) view.findViewById(R.id.scorecardPar12);
            holePar[12]=(EditText) view.findViewById(R.id.scorecardPar13);
            holePar[13]=(EditText) view.findViewById(R.id.scorecardPar14);
            holePar[14]=(EditText) view.findViewById(R.id.scorecardPar15);
            holePar[15]=(EditText) view.findViewById(R.id.scorecardPar16);
            holePar[16]=(EditText) view.findViewById(R.id.scorecardPar17);
            holePar[17]=(EditText) view.findViewById(R.id.scorecardPar18);

            EditText []holeShots = new EditText[18];
            holeShots[0]=(EditText) view.findViewById(R.id.scorecardShots1);
            holeShots[1]=(EditText) view.findViewById(R.id.scorecardShots2);
            holeShots[2]=(EditText) view.findViewById(R.id.scorecardShots3);
            holeShots[3]=(EditText) view.findViewById(R.id.scorecardShots4);
            holeShots[4]=(EditText) view.findViewById(R.id.scorecardShots5);
            holeShots[5]=(EditText) view.findViewById(R.id.scorecardShots6);
            holeShots[6]=(EditText) view.findViewById(R.id.scorecardShots7);
            holeShots[7]=(EditText) view.findViewById(R.id.scorecardShots8);
            holeShots[8]=(EditText) view.findViewById(R.id.scorecardShots9);
            holeShots[9]=(EditText) view.findViewById(R.id.scorecardShots10);
            holeShots[10]=(EditText) view.findViewById(R.id.scorecardShots11);
            holeShots[11]=(EditText) view.findViewById(R.id.scorecardShots12);
            holeShots[12]=(EditText) view.findViewById(R.id.scorecardShots13);
            holeShots[13]=(EditText) view.findViewById(R.id.scorecardShots14);
            holeShots[14]=(EditText) view.findViewById(R.id.scorecardShots15);
            holeShots[15]=(EditText) view.findViewById(R.id.scorecardShots16);
            holeShots[16]=(EditText) view.findViewById(R.id.scorecardShots17);
            holeShots[17]=(EditText) view.findViewById(R.id.scorecardShots18);

            for(int i = 0; i < arrayList.size(); i++){


                final String numHole = arrayList.get(i).get("holeNum");
                final String yards = arrayList.get(i).get("yards");
                final String par = arrayList.get(i).get("par");
                final String shots = arrayList.get(i).get("shots");

                holeNum[i].setText(numHole);
                holeYards[i].setText(yards);
                holePar[i].setText(par);
                holeShots[i].setText(shots);

            }
        }

        return view;
    }else {
        View view = inflater.inflate(R.layout.fragment_no_rounds, container, false);

        ((MainActivity) getActivity())
                .setActionBarTitle("Scorecard");

        return view;
    }
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    getActivity().setTitle("Scorecards");
}
}

最佳答案

我认为您想要检查某些条件,并且在相应检查后您想要更改编辑文本可见性 现在-xml部分也通过编程完成 对于可见性使用 -setVisibility(View.)

对于启用/禁用使用-setEnabled(true/false)

现在你所看到的焦点集中在你的 View 上setFocusable(true/false)

但我建议您在检查之前添加一个默认状态..即 yourtextview.visibility(View.Gone);

完整代码

if(your condition)
        {
            yourtextview.setVisibility(View.GONE);
            yourtextview.setEnabled(false);
            yourtextview.setFocusable(false);
        }

        else
        {
            yourtextview.setVisibility(View.VISIBLE);
            yourtextview.setEnabled(true);
            yourtextview.setFocusable(true);
        }

希望对你有帮助

关于java - 如果为空,则禁用 EditText 数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588305/

相关文章:

java - 对每个实体子类型使用不同的投影

java - 使用循环通过 JDBC 在 SQL 表中插入 1000 行 - 性能

android - 获取用户名和密码时出错

android - MapView google maps api V2 看起来空白,只显示带有 +/- 按钮的网格

java - 如何在 Apache Mina sshd-core 版本 0.14.0 中覆盖 getVirtualUserDir()

java - 如何使用多个数据运行 JUnit 4 数据驱动测试

java - Hibernate的MariaDB方言类名称是什么?

java - Android - SignalStrength 是事件类吗?

android - onSingleTapConfirmed 和 onSingleTapUp 的区别

java - 安卓 : determine zoom level from circle