关于listview的点击响应事件的问题 ListView是能响应,但是我知道的只能全部响应,不能单独的响应某一个,我也想知道单独响应某一个的方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { } });简单地为你的ListVIew绑定一个listener不行吗? 关于你代码里的这两行代码:Listview listview = (listview)parent;//这句根本不需要,绑定到你的ListView就好HashMap<String, String> map=(HashMap<String,String>)listview.getItemAtPosition(position);//这里取出来的不是一个Map//你想得到当前被click的item里的item_name吧?直接在view里取到好了TextView tv = view.findViewById(你item_name的Id); @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //获取你的listView的addapter SimpleAdapter sim = (SimpleAdapter) listView.getAdapter(); for (int k = 0; k < sim.getCount(); k++) {//每一个item HashMap<String, Object> map = (HashMap<String, Object>) sim .getItem(k);//你想要得到的值 String value = map.get("key") ; } } 有点需求不太明白。楼主想要给listview的item加监听的话,还是想给item内的textview加监听。若给item加监听,那考虑的应该是position若想给textview加监听,那直接的适配器的getview绘制textview的时候给textview加监听就好了。(这时候需要考虑别让item和textview之间的父子关系对监听的影响)如果主想即是对item进行监听,也想取出item内textview显示的内容,那楼主可以在适配器中追加方法,并且在适配器中用list等数据结构保存不同position下的textview信息。在item的监听事件内,调用该方法并将position传入,来取得相应数据。listview不建议直接对view进行操作,思路没错,但view数据结构较大,对内存及速度都是浪费。建议是能对小数据操作的就对小数据操作,避免浪费 不是,我是要根据跳转到另外一个activity //@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //listview1列表item响应时间 SetingCornerListView listview = (SetingCornerListView)parent; HashMap<String, String> map = (HashMap<String, String>)listview.getItemAtPosition(position); String item = map.get("item_name"); //Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show(); Intent intent = new Intent(); intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class); //switch(map.get("item_name")){ //case "Personal Info": //break; //} switch(position){ case 0: Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show(); Intent item_intent = new Intent(); intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class); InfoSetingActivity.this.startActivity(item_intent); break; case 1: Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show(); break; case 2: Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show(); break; case 3: Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show(); break; default: break; } } }现在写成这样,语法没有错误,但是运行的时候,跳转到另外一个Activity的时候,就出错了,自动关闭,在AndroidMainfest也加入了改activity, 为什么还出错?我的AndroidMainfest是这样的<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lin.LANCom.activity" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:name=".MainListActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="lin.LANCon.set.activity.InfoSetingActivity"/> <activity android:name="lin.LANCon.about.activity.AboutActivity"/> <activity android:name="lin.LANCon.set.activity.PersonalInfoActivity"/> </application></manifest>代码结构如图 9楼代码switch上面的都没用,全部删掉 我的listvivw怎么出现点击两次的情况 楼主竟然想到了用switch()来判断 string类型,让我情何以堪呢,根据position进行判断跳转就可以。 请教大神们关于cygwin/NDK的一个问题 想做个课程表,求指导…… 怎么显示一个窗体不规则的Dialog 紧急求解,在Listview下方添加按钮不显示 Google map怎么获取一个地点的详细信息 关于资源R.string的问题。求助各位大侠。 如何能在apk下载安装后执行某些动作 用html5如何实现橡皮筋效果 求助!关于Android接口数据加密的问题 安卓百度地图 出现的问题 求解 android 手机流量监控求代码 android4.0如何将application下所有界面的title居中显示
mList.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3)
{
}
});
简单地为你的ListVIew绑定一个listener不行吗?
Listview listview = (listview)parent;//这句根本不需要,绑定到你的ListView就好HashMap<String, String> map=(HashMap<String,String>)listview.getItemAtPosition(position);//这里取出来的不是一个Map//你想得到当前被click的item里的item_name吧?
直接在view里取到好了
TextView tv = view.findViewById(你item_name的Id);
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//获取你的listView的addapter
SimpleAdapter sim = (SimpleAdapter) listView.getAdapter();
for (int k = 0; k < sim.getCount(); k++) {
//每一个item
HashMap<String, Object> map = (HashMap<String, Object>) sim
.getItem(k);
//你想要得到的值
String value = map.get("key") ;
} }
楼主想要给listview的item加监听的话,还是想给item内的textview加监听。
若给item加监听,那考虑的应该是position若想给textview加监听,那直接的适配器的getview绘制textview的时候给textview加监听就好了。
(这时候需要考虑别让item和textview之间的父子关系对监听的影响)
如果主想即是对item进行监听,也想取出item内textview显示的内容,那楼主可以在适配器中追加方法,
并且在适配器中用list等数据结构保存不同position下的textview信息。在item的监听事件内,
调用该方法并将position传入,来取得相应数据。listview不建议直接对view进行操作,思路没错,但view数据结构较大,对内存及速度都是浪费。
建议是能对小数据操作的就对小数据操作,避免浪费
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//listview1列表item响应时间
SetingCornerListView listview = (SetingCornerListView)parent;
HashMap<String, String> map = (HashMap<String, String>)listview.getItemAtPosition(position);
String item = map.get("item_name");
//Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
Intent intent = new Intent();
intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class);
//switch(map.get("item_name")){
//case "Personal Info":
//break;
//}
switch(position){
case 0:
Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
Intent item_intent = new Intent();
intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class);
InfoSetingActivity.this.startActivity(item_intent);
break;
case 1:
Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
break;
case 3:
Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
}
现在写成这样,语法没有错误,但是运行的时候,跳转到另外一个Activity的时候,就出错了,自动关闭,在AndroidMainfest也加入了改activity, 为什么还出错?我的AndroidMainfest是这样的<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="lin.LANCom.activity"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MainListActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="lin.LANCon.set.activity.InfoSetingActivity"/>
<activity
android:name="lin.LANCon.about.activity.AboutActivity"/>
<activity
android:name="lin.LANCon.set.activity.PersonalInfoActivity"/>
</application></manifest>代码结构如图