OnListItemclick hanya perlu merespons dengan menekan tombol

Saya memiliki tampilan daftar dengan adaptor khusus dan mengimplementasikan onListItemClick. Saya memiliki beberapa komponen untuk setiap baris dan ketika mengklik sesuatu di baris itu meluncurkan suatu aktivitas. Saya bertanya-tanya, bagaimana saya bisa mengaturnya hanya jika Anda mengklik tombol Anda meluncurkan aktivitas dan bukan ketika menekan baris secara acak? Atau lebih baik mengatur onClick di adaptor itu sendiri untuk setiap tombol?

Memperluas ListActivity :

@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, pos, id);

            Intent i = new Intent(LevelMenu.this,AreaMenu.class);
            i.putExtra("level_value", (pos+1));
            startActivity(i);



    }
}

Tombol :

<Button
    android:id="@+id/level"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/unlock"
    android:layout_centerHorizontal="true"
    android:focusable="false"
    android:clickable="false"
    android:text="Play" />

Tampilan Daftar:

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="@null"
    android:dividerHeight="15dp" />

person David    schedule 31.03.2013    source sumber
comment
hai saya pikir ini akan membantu Anda: stackoverflow.com/questions/10134569/   -  person Smartoop    schedule 01.04.2013
comment
atur onclick Listener untuk tombol Anda di customAdapter, letakkan kode Anda di sana..   -  person Pragnani    schedule 01.04.2013
comment
@David Apakah tombol itu ada di dalam tampilan daftar.   -  person Yugesh    schedule 01.04.2013
comment
Tidak, itu ada di dalam tata letak item saya.   -  person David    schedule 01.04.2013
comment
Anda dapat mengatur OnClickListener untuk tombol yang Anda sebutkan di baris Anda, dan menghapus onItemClickListener dari listView Anda. Jadi itu akan diluncurkan hanya ketika Anda mengklik tombolnya.   -  person yahya    schedule 01.04.2013


Jawaban (2)


Tanpa melihat bagaimana Anda sebenarnya melakukannya, ini mungkin sulit. Apa yang dapat Anda lakukan, jika Anda hanya memiliki onClick umum, Anda dapat memeriksa untuk memastikan bahwa View v adalah instanceof Button lalu ambil id, tag, atau apa pun dari tombol dan gunakan itu untuk meluncurkan aktivitas Anda.

public void onClick(View v){
    if( v instanceof Button){
        //a button was clicked!
    }
}
person ElefantPhace    schedule 31.03.2013

ada metode setEnable di baseAdapter jika Anda tidak ingin onItemClick dipanggil, kembalikan false dari ini.

Untuk kasus Anda, berikan satu nilai boolean dari onClick tombol Anda dan berdasarkan itu Anda dapat mengembalikan true dari false.

person Ankit    schedule 01.04.2013