2013-08-27 54 views
1

Android開發者!如何比較字符串陣列

1)我試圖比較我string.xml宣佈一個字符串數組(我不知道這是否是可能的):

<string-array name="menu_array"> 
     <item>Pizzas</item> 
     <item>Baguetes</item> 
     <item>Calzones</item> 
     <item>Esfihas</item> 
     <item>Refrigerantes</item> 
     <item>Vinhos</item> 
     <item>Cervejas</item>   
</string-array> 

2)我有一個ImageView的佈局,更新對應於每個菜單項的字符串陣列的圖像:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/image" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    android:gravity="center" 
    android:clickable="true" 
    android:onClick="selecionarOpcao" 
    android:padding="32dp" /> 

3)我使用的導航抽屜。這是一個片段類節目叫項目的圖像:

public static class MenuFragment extends Fragment { 
    public static final String ARG_PRODUTOS_NUMBER = "produtos_number"; 

    public MenuFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
    { 
     View rootView = 
      inflater.inflate(R.layout.fragment_menu, container, false); 

     int i = getArguments().getInt(ARG_PRODUTOS_NUMBER); 
     String menu = getResources().getStringArray(R.array.menu_array)[i]; 

     int imageId = getResources().getIdentifier(
      menu.toLowerCase(Locale.getDefault()), "drawable", 
      getActivity().getPackageName()); 

     ((ImageView) rootView.findViewById(R.id.image)) 
      .setImageResource(imageId); 
     getActivity().setTitle(menu); 
     return rootView; 
    } 
} 

4)我想根據單擊的項目,以調用不同的意圖,圖像加載中...我已經嘗試這種形式,但不成功。

public void selecionarOpcao(View view) 
{ 
    switch (view.getId()) { 
    case R.id.image: 
     String[] produto = 
      getResources().getStringArray(R.array.menu_array); 
     if (produto.toString().equals("pizza")) { 
      startActivity(new Intent(this, ListarActivity.class)); 
     } //Others Condictions 
     break; 
    } 
} 

當我比較這些字符串?多謝你們!

+1

你必須做produto foreach foreach(字符串s在produto){if(s.equals(「pizza」)){//做你的東西}} –

回答

2

String[] produto = getResources().getStringArray(R.array.menu_array); 
for(String item in produto) { 
    if (item.equals("pizza")) { 
     startActivity(new Intent(this, ListarActivity.class)); 
    }//Others Condictions 
} 

更新替代: 你可以嘗試設置標籤用繩子

((ImageView) rootView.findViewById(R.id.image)).setTag(menu); // in onCreateView 

而且在聽衆​​中使用此標記:

public void selecionarOpcao(View view) 
{ 
    String menuString = (String) view.getTag(); 
    if(menuString.equals("Pizzas")){ 
    // start activity 
    } else if /// Other Condition 
} 
+0

謝謝你!成功地! – luzielsouza

+1

不客氣! – Peregreen