0

私はリストビューを持っていますが、コードをトリプルチェックしましたが、どういうわけかクリックリスナーで検出できず、何が問題なのかわかりません... できれば助けてください

ダウンロードしたxmlレイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@string/app_name"
        android:scaleType="fitXY"
        android:src="@drawable/topbar" />

    <ImageView
        android:id="@+id/downloaded_back_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="14dp"
        android:layout_marginLeft="22dp"
        android:contentDescription="@string/app_name"
        android:src="@drawable/back" />

    <TextView
        android:id="@+id/downloaded_layout_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/downloaded_back_img"
        android:layout_centerHorizontal="true"
        android:paddingTop="5dp"
        android:text="@string/downloaded_my_title"
        android:textColor="@android:color/white"
        android:textSize="18sp"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/downloaded_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/imageView2"
        android:layout_centerHorizontal="true" >
    </ListView>

</RelativeLayout>

以下は、Im が入力する listitem xml です。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_item_sel"
    android:orientation="horizontal"
    android:weightSum="100" >

    <ImageView
        android:id="@+id/downloaded_album_itempic"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center_vertical"
        android:layout_margin="5dp"
        android:layout_weight="10"
        android:background="@android:color/white"
        android:contentDescription="@string/app_name"
        android:padding="1dip" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_weight="70"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/downloaded_album_itemtitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:textSize="15sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/downloaded_album_itemsinger"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white" />

        <TextView
            android:id="@+id/downloaded_album_itemgenre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white" />
    </LinearLayout>

    <Button
        android:id="@+id/downloaded_album_item_delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="10"
        android:textColor="@color/red"
        android:background="@android:color/transparent"
        android:contentDescription="@string/app_name"
        android:drawableTop="@android:drawable/ic_delete"
        android:text="@string/delete" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="10"
        android:contentDescription="@string/app_name"
        android:background="@drawable/item_arrow"/>

</LinearLayout>

リストビューに関連している可能性のある私のアクティビティのコードの一部:

public class Downloaded extends Activity {
    private DatabaseHelper helper;
    private DownloadedAlbumLazyAdapter adapter;
    private ArrayList<Albums> temp;
    private ListView list;
    private ImageView back;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.downloaded);
        init();
    }

    private void init() {
        list = (ListView) findViewById(R.id.downloaded_list);
        back = (ImageView) findViewById(R.id.downloaded_back_img);
        back.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                finish();
            }
        });
        temp = new ArrayList<Albums>();
        helper = new DatabaseHelper(this);
        helper.openDB();
        temp = helper.getAllDownloadedAlbums();

        adapter = new DownloadedAlbumLazyAdapter(this, temp);
        list.setAdapter(adapter);
        list.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int position,
                    long arg3) {
                Intent i = new Intent();
                i.putExtra("songs", temp.get(position).getSongs());
                i.setClass(Downloaded.this, DownloadedDetails.class);
                // startActivity(i);
                Toast.makeText(
                        Downloaded.this,
                        getString(R.string.downloaded_my_title) + " "
                                + temp.get(position).getSongs().size()
                                + " items", Toast.LENGTH_SHORT).show();
            }
        });

        helper.closeDB();
    }

この問題の原因がわかりません。このアクティビティはタブホスト内にあり、他のアクティビティにはリストビューがありますが、すべて機能します。

4

2 に答える 2

0

ListActivityまず、次の代わりに拡張する必要がありActivityます。

public class Downloaded extends ListActivity

次に、onCreate()メソッドで初期化を行います。getListView()Youtリストを参照するために使用できます:

@Override
public void onCreate() {
    ...
    getListView().setOnItemClickListener(...);
    ...
}

ボタンがある場合は、アダプターのメソッドでそのプロパティを false にListView設定する必要があります。focusablegetView()

deleteButton.setFocusable(false);
deleteButton.setFocusableInTouchMode(false);

このようにして、リスト アイテムはイベントを受け取ります。

乾杯!

于 2013-04-06T11:46:51.477 に答える
0

これを使って

public class Downloaded extends Activity implements OnItemClickListener {
}


@Override
public void onItemClick(View v){
}

また...

list.setOnItemClickListener(new View.OnItemClickListener() {
于 2013-04-06T12:16:13.870 に答える