2013-07-27 27 views
5

Tôi mới phát triển Android.Android: Tự động thay đổi tiêu đề hoạt động thành văn bản của danh sách đã chọn Mục

Tôi đã tạo một ứng dụng chi tiết tổng thể đơn giản bắt đầu bằng danh sách chủ đề cuộn dọc đơn giản, dọc.

Khi người dùng chọn chủ đề, màn hình chi tiết xuất hiện, thay thế màn hình đầu tiên, với danh sách chi tiết liên quan đến chủ đề đã chọn.

Tôi muốn tiêu đề cho màn hình chi tiết hiển thị chủ đề mà người dùng đã chọn trên trang đầu tiên, nhưng không thể giải quyết vấn đề sau khi làm việc gần một tuần.

Tất cả những gì tôi cần biết là, Điều này có thể thực hiện được không? Không tìm kiếm ai đó để giải quyết điều này cho tôi, nhưng có thể là một gợi ý hoặc một liên kết đến một hướng dẫn cho thấy làm thế nào điều này có thể được thực hiện.

Lưu ý: Tôi muốn đăng bản vẽ những gì tôi muốn làm, nhưng tôi mới ở đây và chưa có 10 danh tiếng.

Xin cảm ơn, SonCoder

Trả lời

5

Không chắc chắn chính xác những gì bạn muốn nhưng theo một trong hai cách .. -Bạn có chế độ xem danh sách. Mỗi khung nhìn (dữ liệu) trong listview phải là một mô hình đại diện. (Aka một lớp riêng biệt chứa các thông tin cụ thể mà bạn muốn đại diện cho mỗi listitem.

-Viết một bộ chuyển đổi danh sách tùy chỉnh (mở rộng từ bộ chuyển đổi cơ sở). http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ Trong phương pháp getView của lớp này bạn nạp lĩnh vực String của mô hình mà bạn muốn trong chế độ xem văn bản

-Hãy đảm bảo sử dụng mẫu trình xem trong bộ điều hợp ở trên.Tôi nhận thấy ví dụ này không sử dụng được một trong các ví dụ này vì có rất ít lệnh gọi findViewById hơn .

-trong hoạt động danh sách, hãy thiết lập trình xử lý Xem trên Click.Điều này sẽ tạo ra một mục đích (để khởi chạy một hoạt động) hoặc một giao dịch mảnh (cho các đoạn). Gửi bản sao của toàn bộ mô hình của bạn (sẽ nhận được từ

parent.getAdapter().getItem(position); 

trong phương pháp nhấp chuột) vào hoạt động chi tiết.

-nếu bạn muốn đặt tiêu đề xem văn bản, chỉ cần xem văn bản và đặt văn bản từ mô hình. Nó sẽ là cùng một nộp bạn thổi phồng trong phương pháp getView của bộ chuyển đổi.

-Nếu bạn muốn thiết lập các titile trong tập actionbar:

this.getActionBar().setTitle(title) 
+0

Như với câu trả lời ở trên, sẽ phải nghiên cứu cách tiếp cận này và cách thực hiện. Một lần nữa, tôi rất mới với Android ... và lập trình nói chung. Đánh giá cao đề xuất. – dmiannay

+0

Cảm ơn bạn. Tôi chỉ không nhìn thấy điều này một vài tuần trước khi tôi đã cố gắng để giải quyết vấn đề. Dòng mã đơn giản này "this.getActionBar(). SetTitle (title)" đã làm các trick và nó hoạt động tuyệt vời! Cảm ơn! – dmiannay

1

Điều này thật đơn giản. Chỉ cần gửi dữ liệu bổ sung trong các intent bắt đầu activity và sau đó trong hoạt động của onCreate đọc dữ liệu và sau đó sử dụng phương pháp setTitle(myString) từ hoạt động.

setTitle(String title) có thể được gọi từ bất cứ nơi nào bằng cách sử dụng hoạt động bằng cách này.

Vì vậy, trong số listadapter, sau đó bạn đặt listener trên chế độ xem của mình đúng không? Một đơn giản onClickListener trên toàn bộ "gốc" xem là tốt.

Trong người nghe bạn nói điều gì đó trong cách này:

Intent intent = new Intent(myActivity, MySubActivity.class); 
intent.putExtra(key, titleName); 
myActivity.startActivity(intent); 

Lưu ý rằng các tài liệu tham khảo hoạt động nên được đặt trong constructor của adapter và rằng "chìa khóa" Chuỗi là một cái gì đó bạn nhận được từ bạn strings.xml. Đừng lặp lại các mã này vì nếu bạn thay đổi một và quên thay đổi những người khác, bạn có thể nhận được một số NPEs đáng sợ.

Tiếp tục trong của MySubActivity bạn onCreate()

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    String key = getString(R.string.my_title_key); 
    String title = intent.getString(key); 
    setTitle(title); 
} 

LƯU Ý: Tôi không chắc chắn của tất cả các tên phương pháp là chính xác và như vậy nhưng một cái gì đó như thế này.

+0

Đề xuất trông rất đơn giản, nhưng tôi sẽ phải nghiên cứu làm thế nào để vượt qua "được chọn chủ đề" chuỗi trong mục đích. Bạn đã cho tôi một cái gì đó để tập trung vào. – dmiannay

+0

Kiểm tra chỉnh sửa sau 1 phút. –

+0

Cảm ơn bạn @Johan S. Mẹo của bạn đã là một trợ giúp lớn! Vẫn còn rất nhiều điều để học, nhưng yêu thương cuộc hành trình. – dmiannay

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