【问题标题】:Share Method between two activities (android)两个活动之间的共享方法(android)
【发布时间】: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 类。这样可以避免代码重复。
  • 很高兴能为您提供一点帮助!祝你编码好运:)

标签: java android


【解决方案1】:

这样的事情应该可以工作。

MyActivity:
...

           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);
           //pass as parameter into constructor or method.
           Helper helper = new Helper(fn, ln, ad, c);
           helper.myRegisterMethod();

           //or
           helper.myRegisterMethod(fn, ln, ad, c);
           ...        


public class Helper {

//class constructor
    public Helper (fn, ln, ad, c)
    {

        this.fn = fn;
        etc
    }

    myRegisterMethod(){
    //or
    myRegisterMethod(fn, ln, ad, c){
          //to do       

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多