When a class is private property, you need to be
fieldName.setAccessible(true);
When a property is a static property class time, directly
itemListField.set(null, arrayList);
Examples:
// Get the class
Class mediaItemClazz = Class.forName ( "io.rong.imkit.plugin.image.PictureSelectorActivity $ MediaItem" );
// Get attributes Field, uriField = mediaItemClazz.getDeclaredField ( "uri" );
// set access permissions uriField .setAccessible ( to true ); Field, mediaTypeField = mediaItemClazz.getDeclaredField ( "mediaType" ); mediaTypeField.setAccessible ( to true );
// instantiate an object Object Item = mediaItemClazz.newInstance ();
// set properties uriField.set (Item, the this .mTakePictureUri.getPath ()); mediaTypeField.set (Item, . 1 ); Class holderClazz= Class.forName("io.rong.imkit.plugin.image.PictureSelectorActivity$PicItemHolder");
// 获取静态属性 Field itemListField = holderClazz.getDeclaredField("itemList"); itemListField.setAccessible(true); Field itemSelectedListField = holderClazz.getDeclaredField("itemSelectedList"); itemSelectedListField.setAccessible(true); ArrayList arrayList = new ArrayList(); arrayList.add(item);
// 给静态属性赋值 itemListField.set(null, arrayList); itemSelectedListField.set(null, null);