arraylist返回错误的索引android

时间:2012-11-30 05:27:57

标签: android arraylist

我想将arraylist与textview进行比较,当arraylist和textview的值匹配/相同时,我想显示arraylist的索引..

这是我的代码

TextView namamenu2=(TextView)findViewById(R.id.nama_menu2);         
String nama_menu_upd = namamenu2.getText().toString();

for(MenuInputClass mic2 : results) {    
    String comp=mic2.getNama_menu();
    if(nama_menu_upd.equals(comp))
    {                               
        int compIndex=results.indexOf(comp);
        Toast.makeText(Appetizer_Activity.this,compIndex, Toast.LENGTH_LONG).show();                                
    }       
} 

MenuInputClass

public class MenuInputClass {

    private String nama_menu;
    private String jumlah_menu;

    public void setNama_menu(String nama_menu) {
        this.nama_menu=nama_menu;
    }

    public String getNama_menu() {
        return (nama_menu);
    }
}

当我在Toast上显示 compIndex 时,它总是显示 -1 。但是当我尝试显示结果的大小时,它的显示正确的尺寸。我能解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

尝试普通For循环而不是Foreach,除非你拿一个int计数器,否则Foreach不会让你知道那个索引。

使用普通For

for(int i=0; i< results.size(); i++) {    
        MenuInputClass mic2= results.get(i);
        String comp=mic2.getNama_menu();
        if(nama_menu_upd.equals(comp))
        {                               
            Toast.makeText(Appetizer_Activity.this, i, Toast.LENGTH_LONG).show();                                
        }       
    } 

使用Foreach

int counter=0;
for(MenuInputClass mic2 : results) {    
    String comp=mic2.getNama_menu();
    if(nama_menu_upd.equals(comp))
    {                               
        Toast.makeText(Appetizer_Activity.this, counter, Toast.LENGTH_LONG).show();                                
    }  
     counter++;     
}