J'ai créé une liste personnalisée avec un onItemClickListener et seule la moitié inférieure est cliquable. La liste utilise un ImageAdapter qui étend ArrayAdapter. Chaque ligne a deux ImageViews et une TextView qui utilisent des arguments suivants xmlListe personnalisée: moitié supérieure non cliquable
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
J'ai suivi this tutoriel et même essayé d'enlever le TextView et ImageView. La liste n'était pas cliquable du tout après les avoir supprimés.
Ceci est mon MainActivity
public class ClickTestActivity extends ListActivity
{
String[] listItems={"alpha", "beta", "gamma", "delta", "epsilon"};
boolean[] listImages={true, false, true, false, true};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new ImageAdapter(this, R.layout.main, R.id.text1, R.id.image1, listItems, listImages));
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Test", Toast.LENGTH_SHORT).show();
}
});
}
}
et mon ImageAdapter
public class ImageAdapter extends ArrayAdapter
{
Activity context;
String[] items;
boolean[] arrows;
int layoutId;
int textId;
int imageId;
ImageAdapter(Activity context, int layoutId, int imageId, String[] items, boolean[] arrows)
{
super(context, layoutId, items);
this.context = context;
this.items = items;
this.arrows = arrows;
this.layoutId = layoutId;
this.textId = textId;
this.imageId = imageId;
}
public View getView(int pos, View convertView, ViewGroup parent)
{
LayoutInflater inflater=context.getLayoutInflater();
View row=inflater.inflate(layoutId, null);
TextView label=(TextView)row.findViewById(textId);
label.setText(items[pos]);
if (arrows[pos])
{
ImageView icon=(ImageView)row.findViewById(imageId);
icon.setImageResource(R.drawable.ic_launcher);
}
return(row);
}
}
et main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layercontainer"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000000"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"/>
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"/>
</RelativeLayout>
ont parfaitement fonctionné. J'ai tellement essayé avant:/ Merci beaucoup – Seb