我是创建单位转换器的新手。 我有两个类,在第一堂课中有这个方法:
public String cardName;
public String StartConversion(View view){
Intent intent = new Intent(this, ConversionActivity.class);
startActivity(intent);
return cardName = view.getResources().getResourceEntryName(view.getId());
}
我想在第二堂课中获取并使用cardName的值,所以:
MainActivity myObj = new MainActivity();
Toast.makeText(getApplicationContext(), "cardName: " + myObj.cardName, Toast.LENGTH_LONG).show();
但这不起作用。我知道局部变量只能在它们的范围内访问,所以我改为这样做。他们说,只有将其设为类成员,您才能访问它,虽然确实可以,但是它具有NULL值。
答案 0 :(得分:0)
通常,您将a)创建一个类,b)将类成员设为“私有”,然后c)用getter and setter methods公开那些成员。
示例:
public class MyClass {
private String cardName;
public void StartConversion(View view){
Intent intent = new Intent(this, ConversionActivity.class);
startActivity(intent);
cardName = view.getResources().getResourceEntryName(view.getId());
}
public getCardName() { return cardName; }
}
然后,任何要访问“ cardName”的类都将调用:
String cardName = myObject.getCardName();
请在此处查看更多详细信息: Java Getter and Setter Tutorial, Nam Ha Minh
答案 1 :(得分:0)
存在一系列解决问题的方法。例如,
首先-StartConversion方法用于设置卡名,然后提供一种getter访问方法。
第二-仅使用StartConversion方法返回所需的内容。但是您应该将代码更改为%b
,以删除 return view.getResources().getResourceEntryName(view.getId());
。外部类应称为所需的访问方法。
总而言之,要么调用该方法以直接访问,要么给出一个setter然后使用getter进行访问。