GridView 点击获取,获取Adapter数据

为GridView添加数据之后,我们需要在获取,当点击弄个按钮,或者某一行数据,我们需要获取当前的一些信息,通过gridview.setOnItemClickListener()

 gridview.setOnItemClickListener(new OnItemClickListener() {  
	    	 @Override  
	    	 public void onItemClick(AdapterView<?> arg0, View arg1, int position,   long ip) {}
);

于onItemClick方法,下面详细说说。( 以下是官方的说明,参数命名不同而已,类型都是一样的。arg0=parent,arg1=view,arg2=position,arg3=id)

public abstract voidonItemClick(AdapterView<?> parent,View view, int position, long id)
Since: API Level 1

Callback method to be invoked when an item in this AdapterView has been clicked.

Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.

//当点击listview某一项时,这个回调方法就会被调用。

Parameters
parentThe AdapterView where the click happened.//你点击的AdapterView
viewThe view within the AdapterView that was clicked (this will be a view provided by the adapter)
//你点击的AdapterView的内容
positionThe position of the view in the adapter.
idThe row id of the item that was clicked.


主要说说最后三个参数,

view——————是你点击的Listview的某一项的内容,来源于adapter。如用((TextView)arg1).getText(),可以取出点击的这一项的内容,转为string类型。

position————是adapter的某一项,如点击了listview第2项,而第2项对应的是adapter的第2个数值,那此时position的值就为1了。

                             如对应adapter的第3个数值,那此时position的值就为2了。

id———————id的值为点击了Listview的哪一项对应的数值,点击了listview第2项,那id就等于1。


 

注:这些数值都是从0开始的。

 Button btn=(Button)arg0.getChildAt(i).findViewById(R.id.menuImage);

((TextView)arg1).getText()

package com.conowen.listview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListviewActivity extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ListView lv = (ListView) findViewById(R.id.lv);
		String[] data = { "windows", "linux", "ios", "android", "wp7",
				"Symbian" };// 定义adapter
		lv.setAdapter(new ArrayAdapter<String>(this,// 把adapter绑定到listview里面
				android.R.layout.simple_expandable_list_item_1, data));
		// 点击事件
		lv.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				Toast.makeText(ListviewActivity.this, "你点击的是第" + arg3 + "项",
						Toast.LENGTH_SHORT).show();
				// 取出所点击的那一项的id

			}

		});
		// 长按事件
		lv.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				Toast.makeText(ListviewActivity.this,
						((TextView) arg1).getText(), Toast.LENGTH_LONG).show();
				// 取出点击listview某一项的内容
				return false;
			}

		});
	}
}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值