我刚开始在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。
答案 0 :(得分:2)
创建扩展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
的布局都包含TextView
,其ID为login