【发布时间】:2016-07-21 02:27:32
【问题描述】:
主活动
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Calc A = new Calc();
int pIN = A.pIN();
int pOUT = A.pOUT();
System.out.println("IN : " + pIN);
System.out.println("OUT : " + pOUT);
}
}
clascc Calc - 不是活动
public class Calc extends MainActivity {
public int PassIN;
public int PassOUT;
public String convertStringToHex(String str) {
char[] chars = str.toCharArray();
StringBuffer hex = new StringBuffer();
for (int i = 0; i < chars.length; i++) {
hex.append(Integer.toHexString((int) chars[i]));
}
return hex.toString();
}
public String convertHexToDec(String hex) {
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for (int i = 0; i < hex.length() - 1; i += 2) {
String output = hex.substring(i, (i + 2));
int decimal = Integer.parseInt(output, 16);
temp.append(decimal);
}
return temp.toString();
}
public void Kappa() {
String trnsferRP = "VDV2b0301";
Calc strToHex = new Calc();
String hex = strToHex.convertStringToHex(trnsferRP);
Calc strToDec = new Calc();
String dec = strToDec.convertHexToDec(hex);
String cut = dec.substring(10);
String A = cut.substring(0, 2);
String B = cut.substring(2, 4);
String C = cut.substring(4, 6);
String D = cut.substring(6, 8);
int cvA = Integer.parseInt(A);
int cvB = Integer.parseInt(B);
int cvC = Integer.parseInt(C);
int cvD = Integer.parseInt(D);
int calcA = (cvA - 48);
int calcB = (cvB - 48);
int calcC = (cvC - 48);
int calcD = (cvD - 48);
this.PassIN = calcA + calcB;
this.PassOUT = calcC + calcD;
}
public int pIN(){
return PassIN;
}
public int pOUT(){
return PassOUT;
}
}
结果日志
07-21 01:29:10.672 26194-26224/com.example.kappa.passvalue2 W/EGL_emulation: eglSurfaceAttrib not implemented
07-21 01:29:10.672 26194-26224/com.example.kappa.passvalue2 W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xae3e3580, error=EGL_SUCCESS
07-21 01:29:20.426 26373-26373/com.example.kappa.passvalue2 W/System: ClassLoader referenced unknown path: /data/app/com.example.kappa.passvalue2-1/lib/x86
07-21 01:29:20.722 26373-26373/com.example.kappa.passvalue2 W/System: ClassLoader referenced unknown path: /data/app/com.example.kappa.passvalue2-1/lib/x86
07-21 01:29:20.772 26373-26373/com.example.kappa.passvalue2 W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
07-21 01:29:20.827 26373-26373/com.example.kappa.passvalue2 I/System.out: IN : 0
07-21 01:29:20.827 26373-26373/com.example.kappa.passvalue2 I/System.out: OUT : 0
07-21 01:29:20.837 26373-26399/com.example.kappa.passvalue2 D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
我在传递值时遇到问题,我正在尝试将从类 Calc [不是 Activity] 计算和转换的值传递给 MainActivity 以供使用/提示。但值变为 0/null.. 它应该显示(示例数据) 输入:3 输出:1
那么有人可以帮助我吗?还是我的方法不对?
已经尝试过sharedpreference和intent bundle
【问题讨论】:
-
你把值传到哪里去了?不就是新建一个Calc即时调用pIn和pOut,不设置PassIN、PassOut吗?
-
ooo 所以 int pIN = A.pIN(); int pOUT = A.pOUT();不传值?如何设置 PassIN、PassOUT?抱歉,我是 android 新手
-
在你的Calc类中,你可以添加一个构造函数,public Calc(int pin, int pout){ this.pin = pin; this.pout=pout; } 然后改变 Calc A = new Calc();到 Calc A = new Calc(3,1);
-
你可以在这里查看如何创建构造函数:homeandlearn.co.uk/java/class_constructor.html
-
感谢您的链接,但据我所知,如果我们将其声明为示例“3”,它确实很有帮助,但我的总是改变..我试图用其他变量替换,但不能
标签: java android android-intent sharedpreferences