我有一个类(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);}
答案 0 :(得分:0)
为什么不将Constant
课程变成Java singleton class
通过这种方式,您可以获得该课程的instance
,使用getters
和setters
修改其字段。
这大致类似于:
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");