Share Coding

Tutorials, Problems, Stuffs …

[kotlin]Getter and Setter of a field by String

In this example, even the object is a any class, we do not know the class name.

Background: I have two fields named ‘EngTitle’ and ‘Title’.
A function to copy ‘EngTitle’ into ‘Title’, so the View Model get ‘Title’ to display without handling the language.

The following shows how to get a field.

var field = `object`::class.memberProperties.find { == fieldName }
var target = `object`::class.memberProperties.find { == targetName }

Next, set the field by target value

if (field is KMutableProperty<*>) {`object`, target?.getter?.call(`object`))

Refresh global variable by request

To renew a global variable such as a token, it is possible to do it by “Tests” function.

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.access_token);

The code should be in “Tests”.

  "access_token": "780fe237-b0c0-45fa-8fde-e856206f0fce",
  "token_type": "bearer",
  "refresh_token": "bac7223d-68a0-4c5a-ae6b-62071dcb187c",
  "expires_in": 6695,
  "scope": "read write"

The JSON respond body.

After you click send button, the global variable “token” will update it’s value with “access_token”.

Use Volley NetworkImageView with RecyclerView somet

Volley has a component NetworkImageView. It is easy to display image which is dowloaded from the network. However, working with RecyclerView or RecyclerViewPager, it load nothing on the view.

public class RecyclerNetworkImageView extends NetworkImageView {
    public RecyclerNetworkImageView(Context context) {

    public RecyclerNetworkImageView(Context context, AttributeSet attrs) {
        super(context, attrs);

    public RecyclerNetworkImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    protected void onDetachedFromWindow() {
        // super.onDetachedFromWindow();

When onDetachedFromWindow() being called, the following condition will stop loading image, so we override it through a subclass and it works!

if (mImageContainer != null) {
    // If the view was bound to an image request, cancel it and clear
    // out the image from the view.
    // also clear out the container so we can reload the image if necessary.
    mImageContainer = null;

EditText imeOption not working

When I press “enter” on the text field, it was supposed to do the send action.
But the unexpected “new line” action occur.

Read more of this post

Android DBFlow multiple condition query with ‘LIKE’ operator

In the following case, contain some features:

  1. ConditionGroup to handle multiple condition
  2. LIKE operator with “%”, means the keyword can have words in-front or after it

Read more of this post