【问题标题】:Android java code stopping on first for loopAndroid java代码在第一个for循环上停止
【发布时间】:2014-10-19 05:18:39
【问题描述】:

我有 2 个数组列表,一个用于电话,另一个用于联系人,我要做的是显示来自 API 的内容,如果客户端有联系人和电话来显示它会显示,但如果客户有联系人但没有电话它什么都不会显示,我在这里错过了什么?即使客户没有手机,我也必须显示联系人,反之亦然

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

            if(tel.size() > 0) {


            TextView TituloTelefone = (TextView) findViewById(R.id.TelefoneTitulo);
            View DivisorTelefone = findViewById(R.id.ViewTelefone);
            TituloTelefone.setVisibility(View.VISIBLE);
            DivisorTelefone.setVisibility(View.VISIBLE);


            LayoutInflater inflater = getLayoutInflater();
            final View vi = inflater.inflate(R.layout.telefones, null);
            final TextView tv = (TextView) vi.findViewById(R.id.telefone);
            TextView tipoTelefone = (TextView) vi.findViewById(R.id.tipoTelefone);

            tv.setText("0" + tel.get(i).getNumero().replaceAll("[^\\d]", ""));


        }

    }



        for (int j = 0; j < contato.size(); j++) {

            if(contato.size() > 0) {

            TextView TituloContato = (TextView) findViewById(R.id.contatoTitulo);
            TituloContato.setVisibility(View.VISIBLE);


            LayoutInflater inflaterContato = getLayoutInflater();
            View viContato = inflaterContato.inflate(R.layout.contatos, null);
            final TextView tvContato = (TextView) viContato.findViewById(R.id.contatos);
            final TextView id = (TextView) viContato.findViewById(R.id.IDcontato);

            id.setText(String.valueOf(contato.get(j).getId_rm()));

            String mString = contato.get(j).getNome();

            String contatoString = mString.substring(0, 1).toUpperCase() + mString.substring(1);

            tvContato.setText(contatoString);


        }
    }

【问题讨论】:

  • 我不太明白你的问题...但是tel.size()contato.size() 的价值是什么?
  • @dwnz 私人List&lt;TelefoneModel&gt; tel = new ArrayList&lt;TelefoneModel&gt;(); private List&lt;ContatoClienteModel&gt; contato = new ArrayList&lt;ContatoClienteModel&gt;();
  • 我的意思是,在执行 for 循环时,ArrayList 的大小是多少?它高于1吗?你应该调试它,找出你的问题应该不难。
  • 尝试手动调试,看看能否发现问题。根据您的信息和代码,我看不出那里有什么问题。
  • @jgandroid 不客气。很难在我的平板电脑上撰写答案,所以我很高兴自动更正失败和格式不一致的评论对您有所帮助。

标签: java android if-statement for-loop


【解决方案1】:

问题解决了,我只需要检查数组是否为空,如下所示:

        if(tel != null) {
           for (int i = 0; i < tel.size(); i++) {




            TextView TituloTelefone = (TextView) findViewById(R.id.TelefoneTitulo);
            View DivisorTelefone = findViewById(R.id.ViewTelefone);
            TituloTelefone.setVisibility(View.VISIBLE);
            DivisorTelefone.setVisibility(View.VISIBLE);


            LayoutInflater inflater = getLayoutInflater();
            final View vi = inflater.inflate(R.layout.telefones, null);
            final TextView tv = (TextView) vi.findViewById(R.id.telefone);
            TextView tipoTelefone = (TextView) vi.findViewById(R.id.tipoTelefone);

            tv.setText("0" + tel.get(i).getNumero().replaceAll("[^\\d]", ""));


        }

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多