繁体   English   中英

与Gson反对Json | 安卓

[英]Object to Json with Gson | ANDROID

我需要将此对象转换为Json字符串,但是如果对象声明为MainActivity类,则无法。 如果我在函数中声明了它,它将起作用。

public class MainActivity extends AppCompatActivity {

public class Boton implements Serializable{
    public Button bt;
    public String path;
    public String fname;
    /*Boton(Button bt, String path, String fname){
        this.bt = bt;
        this.path = path;
        this.fname = fname;
    }*/
}
Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        load_bts();
}

public void load_bts(){
        Button bt = new Button(this);
        Boton cbt = new Boton();
        cbt.bt = bt;
        cbt.path = "QUESO";
        cbt.fname = "";

        Gson gson = new Gson();
        String json = gson.toJson(cbt);
}

如果我这样做,该应用程序将运行:

public void load_bts() {
    class Boton implements Serializable {
        public Button bt;
        public String path;
        public String fname;
    }
    Button bt = new Button(this);
    Boton cbt = new Boton();
    cbt.bt = bt;
    cbt.path = "QUESO";
    cbt.fname = "";

    Gson gson = new Gson();
    String json = gson.toJson(cbt);
}

您不能序列化一个按钮。 两种方法都不起作用。 即使使用第二种方法,json变量也为null。

android中的按钮不可序列化。

但是您可以序列化按钮的元数据(属性),例如textsize,textcolor等。 然后在创建按钮时使用这些数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM