Java 获取单击的项目

Java 获取单击的项目,java,android,Java,Android,我不知道如何识别使用OnClickEvent单击的项目。我用图像+文本绘制gridview菜单。这是我的密码: public class MyActivity extends Activity implements OnItemClickListener { GridView menu; private String[] menu_text = { "Menu1", "Menu2", "Menu3", "Menu4", "Menu5",

我不知道如何识别使用OnClickEvent单击的项目。我用图像+文本绘制gridview菜单。这是我的密码:

public class MyActivity extends Activity implements OnItemClickListener {

    GridView menu;
    private String[] menu_text = {
    "Menu1",
    "Menu2",
    "Menu3",
    "Menu4",
    "Menu5",
    "Menu6",
    "Menu7",
    "Menu8"};

    private Integer[] menu_icon = {
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,};

    /** Called when the activity is first created. */

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

        setContentView(R.layout.main);

        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);    

        menu = (GridView)findViewById(R.id.Menu);
        menu.setOnItemClickListener(this);
        menu.setAdapter(new MenuItem(this, R.layout.menu_item, menu_text));

        }

    public class MenuItem extends ArrayAdapter {
        public MenuItem(Context context, int textViewResourceId, String[] objects) {
        super(context, textViewResourceId, objects);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater=getLayoutInflater();
            View row=inflater.inflate(R.layout.menu_item, parent, false);
            TextView tv=(TextView)row.findViewById(R.id.text);
            tv.setText(menu_text[position]);
            tv.setTextColor(Color.BLACK);
            tv.setCompoundDrawablesWithIntrinsicBounds(0, menu_icon[position], 0, 0);
            return row;
            }

    }

    public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
    // TODO Action to perform


    }
    }

所以我的问题是如何识别在这个网格菜单中单击了哪个项目

您已在此单击中重写了onItemClick方法,查看视图arg1是正在单击的视图,第三个参数arg2是gridview中项目的位置。
onItemClick
参数中的
arg2
int是被按下项目在数组中的位置

所以


如果您阅读了onItemClick Listener文档,您会发现在onItemClick方法中提供了一些参数:

设置发生单击的适配器视图的父级。
查看已单击的AdapterView中的视图(这将是适配器提供的视图)
将视图的位置放置在适配器中。
id单击的项目的行id

position将为您提供所单击项的索引

public void onItemClick(AdapterView arg0,View arg1,int arg2,long arg3){String menuText=menu_text[arg2];Drawable d=getResources().getDrawable(菜单图标[arg2])}
public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {
    // TODO Action to perform
    String selectedObject = objects[arg2]; //objects is the String array passed to the adapter.
}