Android从另一个类访问主要活动变量

Android从另一个类访问主要活动变量,android,android-activity,Android,Android Activity,我有一个主要的活动课和找课。我需要访问主活动变量的变量,即find类中的name。我试图访问下面的代码片段,但我得到一个错误。如何从另一个类访问主活动变量 public class main extends Activity { public static String name=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedI

我有一个主要的活动课和找课。我需要访问主活动变量的变量,即find类中的name。我试图访问下面的代码片段,但我得到一个错误。如何从另一个类访问主活动变量

public class main extends Activity {

     public static String name=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button1=(Button)findViewById(R.id.button1);

        final EditText edittext = (EditText) findViewById(R.id.editText1);

        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                name=edittext.getText().toString();

            }
        });                                                
}
我的第二节课

public class find {

public void finder(){

    main mainactivity=new main();
    String incoming_name =mainactivity.name;//I can not use like that ? 
            // do something 
}
}

您不想直接从另一个外部类访问活动的变量。这是一种糟糕的做法,因为活动毕竟是UI的一部分,而不是应用程序的后端

另外,请注意,在您的示例中,name属性是静态的,并且不存在;不属于特定实例。

您不希望直接从其他外部类访问活动的变量。这是一种糟糕的做法,因为活动毕竟是UI的一部分,而不是应用程序的后端


另外,请注意,在您的示例中,name属性是静态的,并且不存在;不属于特定实例。

1您不应该实例化活动,而应该启动活动


2您已经声明了变量public static,因此您可以简单地引用它,而无需通过main.name实例化类

1您不应该实例化活动,而应该启动活动


2您已经声明了变量public static,因此您可以简单地引用它,而无需通过main.name实例化类

那么,在这种情况下,我如何获得edittext的值呢?这需要知道类之间的关系和finder的用途。@MByD我的目的是在我的活动中有一个标志,我想在用户经过一些过程后从片段中更新它。在“活动”中更新变量的正确方法是什么?那么,在这种情况下,如何获取edittext的值?这需要知道类之间的关系和finder的用途。@MByD我的目的是在“活动”中有一个标志,我想在用户经过一些过程后从片段中更新它。在活动中更新变量的正确方法是什么?如果我不希望它是公共的怎么办?我怎样才能得到它?@FranciscoCorralesMorales OOPS基本概念说,除非访问修饰符是公共的,否则无法访问类及其内容!如果我不想公开呢?我怎样才能得到它?@FranciscoCorralesMorales OOPS基本概念说,除非访问修饰符是公共的,否则无法访问类及其内容!