我在Main类中设置了EditBox变量。我想在另一个类中获取editbox的值。但是返回一个空值。我哪里做错了? 感谢。
public class Main extends Activity{
{
EditText name;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loadInfo(); }
loadInfo()
{
SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
name.setText(preferences.getString("name", ""));
}
}
public class A
{
Main m;
String str= m.name.getText().toString();
}
答案 0 :(得分:3)
你永远不会实例化m;您只需为Main
类型创建一个引用,并将其命名为m
。你必须使用:
Main m = new Main();
答案 1 :(得分:0)
如果您希望将活动字符串从活动传递到活动,则可以使用Intent。
答案 2 :(得分:0)
活动内部name = (EditText) findViewById(R.id.yourEditTextId);
要在其他类中使用“name”(EditText,BTW的奇怪名称),您需要引用Main实例,并且可以执行此操作:mainInstance.name
。
虽然我认为保持“名字”公开不是一个好主意
在许多地方,您可以使用:findViewById()
来获取视图,View.getContext(), Adapter.getContext()
来获取上下文,这是主实例。(如果您想使用自己的方法,则需要强制转换。)< / p>
我没有测试,但我认为你无法在这个new Main()
中实例化Android。
无论如何,我建议你阅读一些基本的Android教程:)