Tôi tạo widget cho ứng dụng Android (trong Java, tất nhiên). Tôi đã tạo RemoteView cổ điển từ bố cục (sử dụng id bố cục)Cách chỉnh sửa/thay đổi Chế độ xem từ bố cục trong RemoteView hoặc tạo RemoteView từ Chế độ xem?
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.view);
và tôi cần chỉnh sửa hoặc thay đổi chế độ xem (nhận dạng theo id). Trong chế độ xem cổ điển, thật dễ dàng, sử dụng hàm findViewById.
View v = ... //inflate layout R.layout.view
View my = v.findViewById(R.id.myViewId);
processView(my); //filling view
Nhưng nó không được hỗ trợ trong RemoteViews. Có thể có được xem bằng cách sử dụng apply(), nhưng sau khi processView và áp dụng lại() Tôi không thấy thay đổi trong xem.
View v = rv.apply(context, null);
View my = v.findViewById(R.id.myViewId);
processView(my); //this work's fine
rv.reapply(context,my);
Thứ hai, lựa chọn tồi tệ hơn, là có được cần RemoteViews xem hình thức của tôi, quá trình đó, xóa điểm cũ và thêm xử lý xem mới sử dụng addView().
RemoteViews rv = ...
View my = ... //apply, find and process
//remove old view
RemoteViews rvMy = ... //create RemoteViews from View
rv.addView(rvMy)
Nhưng tôi không biết cách tạo RemoteView từ chế độ xem (có thể?). Bất kỳ ý tưởng nào giải quyết vấn đề này?
Tôi nghĩ câu hỏi của bạn cần được làm rõ một chút. Bạn đang cố gắng thay đổi văn bản của chế độ xem từ xa mà không biết ID của nó? –