我多次坚持这个问题而且我以不同的方式解决了这个问题,我不确定我是以正确的方式做到的.
我在以下示例中简化了问题.我知道我只能将数据传递给类,但我确实想传递editText,因为我遇到了更困难的UI控件的问题.
我在以下示例中简化了问题.我知道我只能将数据传递给类,但我确实想传递editText,因为我遇到了更困难的UI控件的问题.
mainactivity.java
public class mainactivity extends Activity { public EditText clickEditText; int count =0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); newTxt(); } public void newTxt() { txt = new MyText(context); txt.updateTextEdit("Main Activity"); } }
myText.java
public class MyText { private Context _context; // constructor public MyText(Context context) { _context = context; } public void updateTextEdit(String str) { private EditText strEditText; strEditText= (EditText)findViewById(_context.R.id.editTextClick); // ???? strEditText.setText(str + " and myTxt"); } }
如果你能解释我如何修复updateTextEdit函数.我通过了主要活动的背景.如何更改editText?非常感谢你!!!
解决方法
如果您真的想以这种方式执行此操作,则需要保存对Activity的引用,而不是Context.像这样:
public class MyText { private Activity _activity; // constructor public MyText(Activity activity) { _activity= activity; } public void updateTextEdit(String str) { private EditText strEditText; strEditText= (EditText)activity.findViewById(R.id.editTextClick); strEditText.setText(str + " and myTxt"); } }
在newTxt()中你需要改变:
txt = new MyText(context);
至:
txt = new MyText(this);
但是,将此方法放入您的活动中会不会更容易?你为什么要在另一堂课?如果它确实需要在另一个类中,您可以使该类成为您的活动的内部类,并且您仍然可以访问活动的方法和成员变量.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。