任何人都可以指导我找到正确的方向,因为情况如此 有两个类calssA with Activity而classB是简单的java类
1.classA有一个编辑框,用户输入一些值。 2.classB有一个计算用户输入的方法。
需要从classA获取用户输入值到classB。
a)。由于其他类没有活动,因此无法通过传递意图获得它。 b)。通过创建一个类来尝试getter setter方法,调用setter,用户输入详细信息。 并在另一个班级中调用getter。
仍然是值为null,所以这里显然缺少什么。对示例或简要说明的任何指导都会很棒。谢谢
答案 0 :(得分:2)
您可以使用自己的自定义类来存储数据,并在您需要的任何地方使用它。
public class Data {
private String a,b;
private static Data data= new Data( );
/* A private Constructor prevents any other
* class from instantiating.
*/
private Data (){ }
/* Static 'instance' method */
public static Data getInstance( ) {
return data;
}
public String getA()
{
return this.a;
}
public String getB()
{
return this.b;
}
public void setA(String a)
{
this.a = a;
}
public String getB(String b)
{
this.b = b;
}
}
Data data = Data.getInstance()
data.setA("Stack");
data.setA("Overflow");
您可以在Java文件中使用此值
Data data = Data.getInstance()
System.out.println(data.getA());
System.out.println(data.getB());
答案 1 :(得分:1)
根据我的知识,你必须使用单身类。
public class DataHolderClass {
private static DataHolderClass dataObject = null;
private DataHolderClass() {
// left blank intentionally
}
public static DataHolderClass getInstance() {
if (dataObject == null)
dataObject = new DataHolderClass();
return dataObject;
}
private String _ProductNames;
public String get_ProductNames() {
return _ProductNames;
}
public void set_ProductNames(String _ProductNames) {
this._ProductNames = _ProductNames;
}
}
设置数据
DataHolderClass.DataHolderClass.set_ProductNames(your data variable);
获取数据
DataHolderClass.DataHolderClass.get_ProductNames(your data variable);
答案 2 :(得分:0)
您可以将edittext值保存在SharedPreferences中,从而使其在所有活动中都可用。 通过这样做,您可以毫无困难地获取其他活动中的值。
例如:
SharedPreferences.Editor editor = preferences.edit();
editor.putString("edtTextValue", valueOfEditText);
editor.commit();
进一步提取其他活动中的值,
preferences.getString("edtTextValue", "");
答案 3 :(得分:0)
在您的活动类中创建
public static String valueEntered;
valueEntered=mEdtTxt.getText().toString();
并在你想要的java类中
String enteredValue=ClassA.valueEntered;
答案 4 :(得分:0)
使用类来保存您的值
public class ValueHolderClass {
public static String valueYouWantToStore_arg;
}
在活动类
中protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText ed=(EditText)findViewById(R.id.myedittext);
valueYouWantToStore_arg= ed.getText().toString().trim();
}
如果您不想保留数据,可以使用此功能。 你也可以参考 Ram kiran 这是一个更好的方法。
或强>
如果您想保留数据并存储以供日后使用,也可以使用SharedPrefernces。
将值存储在共享首选项中:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.commit();
从共享首选项中检索值:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name","");
if(!name.equalsIgnoreCase(""))
{
name = name+" Sethi"; /* Edit the value here*/
}