Java 使用创建不同类的android access视图
首先,我道歉,因为我还是Android开发的初学者。 我的问题:我可以使用其他类访问视图吗?例如,这是我的主要活动代码: (XML) Controller.javaJava 使用创建不同类的android access视图,java,android,xml,Java,Android,Xml,首先,我道歉,因为我还是Android开发的初学者。 我的问题:我可以使用其他类访问视图吗?例如,这是我的主要活动代码: (XML) Controller.java import android.app.Activity; import android.widget.EditText; public class Controller extends Activity { public Controller() { // TODO Auto-generated constructor
import android.app.Activity;
import android.widget.EditText;
public class Controller extends Activity {
public Controller() {
// TODO Auto-generated constructor stub
}
public void setEmptyEditText(){
EditText et = (EditText) findViewById(R.id.something_dummy);
et.setText("");
}
}
当我运行此应用程序时,会出现错误和崩溃。
我想知道我是否可以对视图(在本例中为editText)进行某些操作,而无需将其写入主活动类。是的,您可以从主活动类外部访问视图。然而,这实际上取决于你想做什么。例如,您可以定义自定义editText(例如,您需要一个editText,只需一次函数调用即可清空) 现在,在mainActivity中,您可以访问自定义编辑文本:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myEditText et = (myEditText) findViewById(R.id.something_dummy);
et.setEditTextEmpty();
}
}
另一方面,在Android中,活动更可能扮演控制器的角色,而editText(以及任何其他相关视图)是简单的哑视图,显示内容。以下是一些关于如何在Android中实现控制器/视图功能的非常好的文章:
您希望在其他视图中具体执行什么操作?在本例中,我希望从其他类中清空edittext视图。请检查答案,并告知是否有帮助。
import android.app.Activity;
import android.widget.EditText;
public class Controller extends Activity {
public Controller() {
// TODO Auto-generated constructor stub
}
public void setEmptyEditText(){
EditText et = (EditText) findViewById(R.id.something_dummy);
et.setText("");
}
public class myEditText extends EditText{
public myEditText(Context context){
super(context);
}
public myEditText(Context context, AttributeSet attrs){
super(context, attrs);
}
public myEditText(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
public setEditTextEmpty(){
setText("");
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myEditText et = (myEditText) findViewById(R.id.something_dummy);
et.setEditTextEmpty();
}
}