2010-07-02 35 views
8

Tôi có một chế độ xem danh sách chứa các bản xem trước dạng văn bản làm các phần tử của nó.đặt trọng tâm vào bất kỳ mục nào của chế độ xem danh sách trong android

  1. Bây giờ tôi muốn mục đầu tiên của danh sách để được tự động tập trung khi tôi khởi động ứng dụng
  2. Làm thế nào tôi có thể thiết lập tập trung vào bất kỳ mục trong danh sách khi tôi click vào một số quan điểm khác ví dụ như một nút?

Trả lời

4

Chế độ xem danh sách có phương pháp setSelected lấy chỉ mục của mục trong danh sách.

+2

Hi nhưng listitem chọn là cùng như tập trung ed listitem? – sarvesh

+0

Lựa chọn AFAIK không giống với tiêu điểm. –

+0

Xin chào Robby, 'setItemsCanFocus (boolean)' nghĩa là gì? –

1

Tôi đoán tôi đã ở trong tình huống tương tự. Tôi muốn có thể kiểm soát trọng tâm của listview theo lập trình với các nút.

Một giải pháp là xử lý setFocusableInTouchMode, nhưng tôi chưa bao giờ đạt được để làm cho nó hoạt động.

Giải pháp khác là quên tiêu điểm và sử dụng chế độ xem danh sách có thể kiểm tra. Đầu tiên thiết lập listview của bạn để "chế độ lựa chọn đơn" trong XML hoặc trong java: Mylistview.setChoiceMode(1)

Sau đó, bạn sẽ có thể kiểm tra bất kỳ mục nào bạn muốn với Mylistview.setItemChecked(position, true)

Vì vậy, khi bạn ăn trưa ứng dụng (OnCreate), sử dụng Mylistview.setItemChecked(0, true) để kiểm tra mục đầu tiên của bạn.

Sau đó, nếu bạn muốn nút để chọn các mục tiếp theo cho dụ, sử dụng:

Mylistview.setItemChecked(Mylistview.getCheckedItemPosition() + 1, true) 

Bạn có thể chỉ định giao diện khi mục được kiểm tra hay không và có khác nhau listviews chekable được xây dựng trước.

Nếu bạn muốn giải thích thêm, xem tôi post

7

Thiết lựa chọn và thiết lập tập trung là hai việc khác nhau. Nếu bạn muốn chỉ setSelection cho một số mục thì bạn có thể sử dụng mã dưới đây.

mListView.setSelection(position); 

Nhưng điều này chắc chắn không có nghĩa là Listview là focused.For tập trung bạn phải sử dụng

mListView.requestFocus(); 

Đối với việc thay đổi tập trung vào một nút bấm bạn có thể đặt mã trên onClick() của nút.

2

cho tôi vấn đề đã được giải quyết bằng cách

listView.setItemsCanFocus(true); 
1
  1. ListView của bạn nên được như thế này:

    <ListView 
        android:id="@+id/my_list" 
        android:layout_width="wrap_content" 
        android:layout_height="200dp" 
        android:layout_margin="10dp" 
        android:choiceMode="none" 
        android:focusable="true" 
        android:fadeScrollbars="false"> 
        <requestFocus /> 
    </ListView> 
    
  2. mListView.setSelection(3); //or any other number

Các vấn đề liên quan