【发布时间】:2015-01-27 21:32:23
【问题描述】:
我想在两个活动之间共享一个名为register 的静态方法。单击按钮时会调用register。
基本上,我有一项针对零售客户注册的活动和另一项针对企业客户的活动(企业客户需要其他信息)。
我的问题是:我应该在register 的参数中传递什么,以便我可以访问调用register 的Activity 的控件。
例如,如果客户注册表单活动名为register,则:
EditText fn = (EditText) findViewById(R.id.firstName);
EditText ln = (EditText) findViewById(R.id.lastName);
EditText ad = (EditText) findViewById(R.id.address);
EditText c = (EditText) findViewById(R.id.city);
将返回零售客户活动表单上的控件,否则它将返回商业客户活动表单控件。 我给控件取了相同的名称。
再次感谢:D
编辑:
寄存器所在的类:
import android.view.View;
import android.widget.EditText;
public class Helper {
public static void register(\\parameters)
{
EditText fn = (EditText) findViewById(R.id.firstName);
EditText ln = (EditText) findViewById(R.id.lastName);
EditText ad = (EditText) findViewById(R.id.address);
EditText c = (EditText) findViewById(R.id.city);
...
}
}
编辑:我创建了一个客户类和一个扩展客户类的商业客户类,当点击注册(针对商业客户)时,我创建了一个新的商业客户并注册了他们。我为普通客户做了同样的事情。
CommercialCustomer cust = new CommercialCustomer(businessN.getText().toString(),fn.getText().toString(),ln.getText().toString(),
bFn.getText().toString(),bLn.getText().toString(),ad.getText().toString(),
c.getText().toString(),s.getText().toString(),zip.getText().toString()
,pN.getText().toString(),em.getText().toString(),uN.getText().toString(),pw.getText().toString());
cust.createCustomerAccount();
【问题讨论】:
-
我打电话给我的助手,但我怎么能在那个班级里调用 findViewById?
-
如果你想使用变量,最好不要在
register()中定义任何findViewById元素。您应该在OnCreate中创建findViewById并使用register(txtView1,....)。确保txtView1也应该是静态的。虽然你应该在参数中得到什么都取决于你。我不是魔术师,他知道你在下一个活动中想要什么。干杯! -
K,谢谢。我想我会复制并粘贴它。代码不多。
-
标准解决方案是为客户和企业客户创建一个 BaseActivity 类。这样可以避免代码重复。
-
很高兴能为您提供一点帮助!祝你编码好运:)