我刚刚开始在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。
最佳答案
创建扩展CustomActivity
的自定义类Activity
private class CustomActivity extends Activity
{
public void onLogin(View view)
{
TextView loginText = (TextView) findViewById(R.id.login);
}
}
然后用
LoginActivity
扩展HomeActivity
和CustomActivity
。这样,onLogin
和LoginActivity
都可以使用HomeActivity
方法,如果需要更改在onLogin
中执行的操作,则可以在任何子类中覆盖它。如果按原样使用上述方法,请确保
LoginActivity
和HomeActivity
的布局都具有ID为TextView
的login
关于java - 如何在另一个 Activity 上调用onclick?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25550416/