2

我想将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();                                
    }       
} 

菜单输入类

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。但是当我尝试显示结果的大小时,它显示正确的大小。我该如何解决这个问题?

4

1 回答 1

2

改用普通For循环Foreach,Foreach 不会让您知道该索引,除非您使用 int 计数器。

正常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++;     
} 
于 2012-11-30T05:31:05.173 回答