Android gridview设置OnItemSelectedListener不工作
我有一个带有imageview和textview的网格视图。Gridview itemSelectedListener不工作。我已经尝试了这里提供的所有解决方案,即使可聚焦和可点击为真或假。若我在适配器中应用click listener,那个么它工作正常。我不明白问题是什么 我的代码是- MainActivity.java XML文件- main.xml gridlayout.xmlAndroid gridview设置OnItemSelectedListener不工作,android,android-gridview,Android,Android Gridview,我有一个带有imageview和textview的网格视图。Gridview itemSelectedListener不工作。我已经尝试了这里提供的所有解决方案,即使可聚焦和可点击为真或假。若我在适配器中应用click listener,那个么它工作正常。我不明白问题是什么 我的代码是- MainActivity.java XML文件- main.xml gridlayout.xml 如果您想在用户单击GridView中的每个项目时执行某些操作,则应使用GridView的setOnItemCli
如果您想在用户单击GridView中的每个项目时执行某些操作,则应使用GridView的setOnItemClickListener
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
Intent createGrp = new Intent(HomeScreen.this,CreateGroup.class);
startActivity(createGrp);
}
});
如果getView出现问题,请尝试修改的代码:
@凌驾
公共视图getViewfinal int位置、视图转换视图、视图组父视图{
ViewHolder holder = null;
// First let's verify the convertView is not null
if (convertView == null)
{
// This a new view we inflate the new layout
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.gridview_layout, parent,false);
holder = new ViewHolder();
holder.tv=(TextView) convertView.findViewById(R.id.txt);
holder.img=(ImageView) convertView.findViewById(R.id.imageView1);
holder.img.setClickable(false);
convertView.setTag(holder);
}
else
holder = (ViewHolder)convertView.getTag();
holder.tv.setText(option[position]);
holder.img.setImageResource(imageId[position]);
return convertView;
}
onItemSelectedListener用于选择视图项,但不用于单击,您无法获得onItemSelected。。。当点击。只有:
仅当新选择的位置与以前选择的位置不同或没有选择的项目时,才会调用此回调
希望这有帮助 为什么不使用itemclicklistener?@Raghunandan是的,它解决了我的问题。
<?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="match_parent"
android:orientation="vertical" >
<include layout="@layout/welcome_logout"/>
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="2"
android:layout_marginTop="@dimen/editTextMarginTop"
android:gravity="center"
android:stretchMode="columnWidth"
android:clickable="true">
</GridView>
</LinearLayout>
<?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="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:layout_gravity="center">
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"/>
<TextView
android:id="@+id/txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:gravity="center_horizontal"/>
</LinearLayout>
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
Intent createGrp = new Intent(HomeScreen.this,CreateGroup.class);
startActivity(createGrp);
}
});
ViewHolder holder = null;
// First let's verify the convertView is not null
if (convertView == null)
{
// This a new view we inflate the new layout
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.gridview_layout, parent,false);
holder = new ViewHolder();
holder.tv=(TextView) convertView.findViewById(R.id.txt);
holder.img=(ImageView) convertView.findViewById(R.id.imageView1);
holder.img.setClickable(false);
convertView.setTag(holder);
}
else
holder = (ViewHolder)convertView.getTag();
holder.tv.setText(option[position]);
holder.img.setImageResource(imageId[position]);
return convertView;