如何拨打其他活动的onclick?

时间:2014-08-28 13:45:49

标签: java android

我刚开始在android中开发并且坚持这个想法

我创建了两个活动,一个是HomeActivity,另一个是LoginActivity。我想在HomeActivity和我希望在其他活动中进行的所有其他操作中放入最少的代码。

我的用例是我在HomeActivity上添加了一个onclick事件,以及我在LoginActivity中编写的onclick方法实现。但我无法调用LoginActivity onclick方法实现。此外,HomeActivity和LoginActivity都具有相同的布局(activity_main.xml)

文件如下:

HomeActivity.java

public class HomeActivity extends Activity {

  private static String TAG = HomeActivity.class.getSimpleName();
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
   }
}

LoginActivity.java

 public class LoginActivity extends Activity {
   private static String TAG = LoginActivity.class.getSimpleName();

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
   }

  public void onLogin(View view){
     // some actions
   TextView loginText = (TextView)findViewById(R.id.login);
  }

  }

activity_home.xml

  <TextView
    android:id="@+id/login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"  
  />
  <Button
     android:id="@+id/login_bt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick = "onLogin"
   />

HomeActivity和LoginActivity都使用相同的布局activity_home。在android中执行此操作是否正确和可行。 其次,如果可以在LoginActivity上调用onLogin,那么我可以将文本设置为TextView。

1 个答案:

答案 0 :(得分:2)

创建扩展CustomActivity

的自定义类Activity
private class CustomActivity extends Activity
{
    public void onLogin(View view)
    {
        TextView loginText = (TextView) findViewById(R.id.login);
    }
}

然后使用LoginActivity扩展HomeActivityCustomActivity。这种onLogin方法可用于LoginActivityHomeActivity,如果您需要更改onLogin中的操作,则可以在任何子类中覆盖它。

如果您按原样使用上述方法,请确保LoginActivityHomeActivity的布局都包含TextView,其ID为login