如何比较String-Array [英] How to compare a String-Array

查看:124
本文介绍了如何比较String-Array的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Android开发者!

Android devs!

1)我试图比较在我的 string.xml 中声明的字符串数组(我不知道)知道是否可能):

1) I have tried to compare a string-array declared in my string.xml (I don't know if it's possible):

<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的布局,用于更新与每个菜单项字符串数组相对应的图像:

2) I have a layout with an ImageView, to update images corresponding to each menu item string-array:

<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)我使用的是导航抽屉。这是一个带有片段的类,用于显示名为的项目图像:

3)I am using a navigation drawer. This is a class with a Fragment to show an image of item called:

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)我想根据不同的意图调用不同的意图单击该项目,加载图像...我已尝试此表单,但没有成功。

4) I would like to call different Intents according to the item clicked, the image loaded... I have trying this form, but not succesfully.

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;
    }
}

我比较这些字符串?谢谢你们!

As I compare these strings? Thanks guys!

推荐答案

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

替换为

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
}

更新:
您可以尝试使用字符串设置标记

UPDATE: You can try set tag with string

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

并在监听器中使用此标记:

And use this tag in listener:

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

这篇关于如何比较String-Array的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆