关于ListView和GridView的onItemClick和onItemSelected方法的4个参数,网上有许多文章都有提及,但大多只是按照Android API的英文描述简单翻译一下,接下来我将举例详细解析这4个参数。
由于ListView和GridView的onItemClick和onItemSelected方法的4个参数大抵相同,下面我就以ListView的onItemClick举例说明:
首先,在activity_main.xml文件里面定义两个简单的ListView, 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#ff0000" >
</ListView>
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="30dp"
android:background="#00ff00" >
</ListView>
</LinearLayout>
Java代码也很简单,MainActivity.java代码如下:
package com.example.androidtest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity implements OnItemClickListener {
private static final String TAG = "MainActivity";
private ListView mListView1;
private ListView mListView2;
private ArrayAdapter<String> mArrayAdapter1;
private ArrayAdapter<String> mArrayAdapter2;
private String[] cities1 = { "北京", "天津", "上海" };
private String[] cities2 = { "广州", "深圳" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mArrayAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cities1);
mArrayAd