Android:列表项选择性“;可点击性“;
我试图在Android中创建一个Android:列表项选择性“;可点击性“;,android,listview,Android,Listview,我试图在Android中创建一个列表视图,其中有些项目有详细信息,有些项目没有。对于那些有详细信息的项目,我希望它们是可点击的,点击它们可以呈现一个新的片段。对于那些没有详细信息的项目,我想隐藏一个ImageView,并将列表项设置为“不可查找” 我正试图通过以下方式实现这一点(这是在我的ArrayAdapter类中的@Override getView方法中): ParseGeoPoint location=itemScan.getParseGeoPoint(“location”); Image
列表视图
,其中有些项目有详细信息,有些项目没有。对于那些有详细信息的项目,我希望它们是可点击的,点击它们可以呈现一个新的片段。对于那些没有详细信息的项目,我想隐藏一个ImageView
,并将列表项设置为“不可查找”
我正试图通过以下方式实现这一点(这是在我的ArrayAdapter
类中的@Override getView
方法中):
ParseGeoPoint location=itemScan.getParseGeoPoint(“location”);
ImageView雪佛龙=(ImageView)convertView.findViewById(R.id.chevron\u image\u view);
if(位置==null){
subtitleLabel.setText(“{位置数据不可用}”);
V形。设置可见性(视图。消失);
convertView.setClickable(错误);
}否则{
subtitleLabel.setText(“”;我猜您可以使用ArrayList存储数据
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ArrayList Object Type itemScan = arrayList.get(position);
ParseGeoPoint location = itemScan.getParseGeoPoint("location");
if (location == null) {
return;
} else {
// Push to a new fragment
}
}
});
mListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
ArrayList对象类型itemScan=ArrayList.get(位置);
ParseGeoPoint location=itemScan.getParseGeoPoint(“位置”);
if(位置==null){
回来
}否则{
//推到一个新片段
}
}
});
好的。这是有道理的,但在理想情况下,我希望避免那些不会推到新片段的项目发出“咔嗒”声。想法?
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// This may be unnecessary when I get this
// issue solved, but I put this in because
// of the odd behavior described below
if (view.isClickable() == true) {
// Push to a new fragment
}
}
});
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ArrayList Object Type itemScan = arrayList.get(position);
ParseGeoPoint location = itemScan.getParseGeoPoint("location");
if (location == null) {
return;
} else {
// Push to a new fragment
}
}
});