gpt4 book ai didi

android - listview OnItemClick 监听器在 fragment 中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:21 25 4
gpt4 key购买 nike

我在 fragment 中使用了 ListView ,但我使用的列表 onItemClick 监听器不起作用。下面是我的代码以及如何完善解决方案。

 public class StoreProfileFragment extends Fragment{
ListView lv;
ArrayList<MyStore_list_dto> list = new ArrayList<MyStore_list_dto>();
MyApplication app;
MyListAdapter adtstore;
View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_store_profile, container, false);
app = (MyApplication) getActivity().getApplicationContext();

list = DBAdpter.getMyStoreData(app.getUserID());
lv = (ListView) rootView.findViewById(R.id.myStore_listview);

adtstore = new MyListAdapter(getActivity().getApplicationContext());
lv.setAdapter(adtstore);
lv.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
Log.v("log_tag", "List Item Click");
}
});


return rootView;
}
public class MyListAdapter extends BaseAdapter {
private LayoutInflater mInflater;

public MyListAdapter(Context context) {
mInflater = LayoutInflater.from(context);

}

public int getCount() {
return list.size();
}

public Object getItem(int position) {
return position;
}

public long getItemId(int position) {
return position;
}

public View getView(final int position, View convertView,
ViewGroup parent) {
convertView = mInflater.inflate(R.layout.custome_mystorelist,
null);
ImageButton store_Name_img = (ImageButton) convertView
.findViewById(R.id.my_Store_logo_image);

TextView store_Name_txt = (TextView) convertView
.findViewById(R.id.mystore_list_name);


store_Name_txt.setText( list.get(position).name);



if (list.get(position).image != null) {
byte[] Image_getByte;
try {
Image_getByte = Base64.decode(list.get(position).image);
ByteArrayInputStream bytes = new ByteArrayInputStream(
Image_getByte);
BitmapDrawable bmd = new BitmapDrawable(bytes);
Bitmap bm = bmd.getBitmap();
store_Name_img.setImageBitmap(bm);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
store_Name_img.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm
.beginTransaction();
MyStoreItemFragment fm2 = new MyStoreItemFragment();
fragmentTransaction.replace(R.id.rela_myStore_fragment,
fm2, "HELLO");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Bundle bundle = new Bundle();
bundle.putString("position", list.get(position).store_id);
fm2.setArguments(bundle);

}
});

return convertView;
}
}
}

下面 xml 文件中的 ListView:

<ListView
android:id="@+id/myStore_listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginTop="5dp"
android:dividerHeight="0dip"
>
</ListView>

自定义 listItem xml 如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rela_store_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="5dip"
android:background="@android:color/white" >


<ImageButton
android:id="@+id/my_Store_logo_image"
android:layout_width="60dip"
android:layout_height="60dip"
android:layout_margin="5dip" />

<TextView
android:id="@+id/mystore_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/my_Store_logo_image"
android:layout_marginBottom="18dp"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/my_Store_logo_image"
android:layout_margin="5dip"
android:text="dfdsfds"
android:textColor="#040404"
android:textSize="15sp"
android:textStyle="bold"
android:typeface="sans" />

</RelativeLayout>

最佳答案

添加这个

android:descendantFocusability="blocksDescendants"

listItem.xml 中的 RelativeLayout。

我想 ImageButton 会在您单击列表行时获得焦点。

编辑:

考虑使用 ViewHolder 模式

引用:

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

关于android - listview OnItemClick 监听器在 fragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com