[Android Q&A, Help & Troubleshooting] gfwtank:
Recently i got a special android 4.4.4 based projector

But i can't change any setting's even i rooted it, there are no any OK button and listview item shows out.

Take "SearchBasedLauncher" as an example:

package com.vackosar.searchbasedlauncher.boundary;

import android.app.Activity;
import android.content.Intent;

import com.google.gson.annotations.Expose;
import com.google.inject.Inject;
import com.vackosar.searchbasedlauncher.entity.FontSize;
import com.vackosar.searchbasedlauncher.entity.SelectAction;

import roboguice.context.event.OnCreateEvent;
import roboguice.event.Observes;
import roboguice.inject.ContextSingleton;

@ContextSingleton
public class SizeSelector extends SelectAction<FontSize> {

public static final FontSize DEFAULT = FontSize.pt9;

@Inject private Activity activity;
@Expose private FontSize fontSize = DEFAULT;

@SuppressWarnings("unused")
public void onCreate(@Observes OnCreateEvent onCreate) {
load();
}

@Override
protected Enum<FontSize> getSelected() {
return fontSize;
}

@Override
public void setSelected(Enum<FontSize> selected) {
this.fontSize = (FontSize) selected;
save();
activity.finish();
activity.startActivity(new Intent(activity, activity.getClass()));
}

@Override
public String getId() {
return getClass().getName();
}

@Override
public String getName() {
return "Text Size";
}

public int getSize() {
return fontSize.getSize();
}

}

package com.vackosar.searchbasedlauncher.entity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

import com.google.inject.Inject;

import java.util.ArrayList;
import java.util.List;

import roboguice.context.event.OnCreateEvent;
import roboguice.event.Observes;

public abstract class SelectAction<T extends Enum<T>> extends Action {

@Inject private Activity activity;
@Inject private SingletonPersister<Action> persister;

public SelectAction() {}

protected void setActivity(Activity activity) {
this.activity = activity;
persister = new SingletonPersister<>(activity.getApplicationContext());
load();
}

@SuppressWarnings("unused")
public void onCreate(@Observes OnCreateEvent onCreate) {
load();
}

protected void save() {
persister.save(this);
}

protected void load() {
persister.load(this);
}

public void act() {
List<String> items = new ArrayList<>();
final Enum[] values = getSelected().getClass().getEnumConstants();
for (Object o: values) {
items.add(o.toString());
}
AlertDialog.OnClickListener listener = new AlertDialog.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
setSelected(getSelected().getClass().getEnumConstants()[which]);
}
};
new AlertDialog.Builder(activity)
.setTitle(getName() + "\nCurrent: " + getSelected())
.setItems(items.toArray(new String[items.size()]), listener)
.show();
}

protected abstract Enum<T> getSelected();

public abstract void setSelected(Enum<T> selected);

}

package com.vackosar.searchbasedlauncher.entity;

public enum FontSize {
pt5,
pt6,
pt7,
pt8,
pt9,
pt10,
pt11,
pt12,
pt13,
pt14,
pt15,
pt16,
pt17,
pt18,
pt19,
pt20,
pt21,
pt22,
pt23,
pt24,
pt25,
pt26,
pt27,
pt28,
pt29,
pt30,
;

public int getSize() {
return Integer.valueOf(this.name().replaceFirst("pt", ""));
}
}

It shows only the current settings taking from data/*.xml

How can i fix it?

Is there someone give hints?

BOOTCLASSPATH /system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar:/system/framework/com.mstar.android.jar:/system/framework/com.jmgo.android.jar