Android アプリケーションで android-amazing-listview を使用しています。ユーザーがリストビューの項目をクリックしたときに詳細を表示したいと考えています。しかし、アイテムにクリックリスナーを設定すると、ヘッダーセクションもアイテムとしてリッスンします。以下に私のコードを示します。また、XML ファイルも参照できます。
@Override
public View getAmazingView(int position, View convertView, ViewGroup parent) {
View res = convertView;
if (res == null) res = getLayoutInflater().inflate(R.layout.menu_item, null);
TextView lName = (TextView) res.findViewById(R.id.lName);
TextView lYear = (TextView) res.findViewById(R.id.lYear);
LinearLayout item = (LinearLayout) res.findViewById(R.id.item);
Items composer = getItem(position);
lName.setText(composer.title);
lYear.setText(composer.summary);
// here I set my click listener just for the item
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "OnClick event !!!", Toast.LENGTH_LONG).show();
}
});
return res;
}
アイテムの XML は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/menu_item" >
<include
layout="@layout/menu_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/item"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="6dp"
android:clickable="true" >
<TextView
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/lName" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/lYear" />
</LinearLayout>
どんな助けでも大歓迎です。