无法更新价值

时间:2013-10-08 03:42:47

标签: android android-view

我有一个类(constant.class)。其中包含需要更新的所有常量值。我在主要活动中有一个方法。它更新常量值(url)并执行视图类(包含webview)。但url的值无法在constant.class中更新。所以在视图中 webview看起来很白。我必须在constant.class中更新url的值。这是我不变的课程:

public class Constant {

public static boolean isCapturedOk = false;

public static int imagePickerStatus = -1;

public static byte[] imageData;

public static int result = 0;

public static String printUrl = "";

public static String rotationValue="";

public static String rotationValueForCamera="";

public static boolean isPrintButtonVisible = true;

}

这是我的View类:

public class PrintView extends LinearLayout {

WebView wev;
public PrintView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    View.inflate(context, R.layout.printscreen, this);
    wev = (WebView) findViewById(R.id.webViewPrint);
    wev.loadUrl("http://www.vividworks.com/");

}

public PrintView(Context context, AttributeSet attrs, int defStyle) {
    super(context);
    // TODO Auto-generated constructor stub
    View.inflate(context, R.layout.printscreen, this);
    wev = (WebView) findViewById(R.id.webViewPrint);
    wev.loadUrl("http://www.vividworks.com/");

}

public PrintView(Context context, AttributeSet attrs) {
    super(context);
    // TODO Auto-generated constructor stub
    View.inflate(context, R.layout.printscreen, this);
    wev = (WebView) findViewById(R.id.webViewPrint);
    wev.loadUrl("http://www.vividworks.com/");

}



@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    // TODO Auto-generated method stub
    for(int i = 0 ; i < getChildCount() ; i++){
        getChildAt(i).layout(l, t, r, b);
    }
}

}

以下是主要活动中的方法:

  public void loadPrintActivity(String printUrl){
   Constant.printUrl = printUrl;
   Constant.isPrintButtonVisible  =true;
   pv.setVisibility(View.VISIBLE);}

1 个答案:

答案 0 :(得分:0)

为什么不将Constant课程变成Java singleton class

通过这种方式,您可以获得该课程的instance,使用getterssetters修改其字段。

这大致类似于:

private Constant() {
    // Exists only to defeat instantiation.
}

public static Constant getInstance() {
    if(instance == null) {
        instance = new Constant();
    }
    return instance;
}

add getters and setters

在每项活动中,您都可以获得Constant,如下所示:

Constant c = Constant.getInstance();

然后设置URL或其他正常的

e.g. c.setURL("urlhere");