为什么返回null值?

时间:2011-07-15 14:10:27

标签: android class

我在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(); 
}

3 个答案:

答案 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教程:)