Android 如何将数据从活动传递到类

Android 如何将数据从活动传递到类,android,class,android-activity,pass-data,Android,Class,Android Activity,Pass Data,这是我的活动代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate( savedInstanceState ); setContentView( R.layout.activity_engineer_recycler ); String value = "hello"; } 这是我的班级档案: public class complaintAdapt

这是我的活动代码

 @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.activity_engineer_recycler );
    String value = "hello";
    }
这是我的班级档案:

public class complaintAdapter{
 //code here
} 

现在,有谁能帮我如何将问候从活动传递到课堂上吗?对此,可能有两种解决方案

解决方案1

像这样在对象创建期间使用活动中的数据

在类中创建一个构造函数,可以像这样获取所需的数据

public class complaintAdapter{
private String _value;
    public complaintAdapter(String value){
        _value = value;
        // use _value
    }
}
String value = "hello";
complaintAdapter complaintAdapterObj = new complaintAdapter();
complaintAdapterObj.sendData(value);
这可以在这样的活动中使用

在类中创建一个方法,并使用数据作为参数调用它

String value = "hello";
complaintAdapter complaintAdapterObj = new complaintAdapter(value);
public class complaintAdapter{
    private String _value;
    public void sendData(String value){
        _value = value;
        // use _value
    }
}
解决方案2

在方法调用中使用来自活动的数据,如下所示

在类中创建一个方法,并使用数据作为参数调用它

String value = "hello";
complaintAdapter complaintAdapterObj = new complaintAdapter(value);
public class complaintAdapter{
    private String _value;
    public void sendData(String value){
        _value = value;
        // use _value
    }
}
这可以在这样的活动中使用

public class complaintAdapter{
private String _value;
    public complaintAdapter(String value){
        _value = value;
        // use _value
    }
}
String value = "hello";
complaintAdapter complaintAdapterObj = new complaintAdapter();
complaintAdapterObj.sendData(value);
以这种方式进行更改:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.activity_engineer_recycler );
    String value = "hello";
    ComplaintAdapter adapter = new ComplaintAdapter(value);

    //access to value
    adapter.getValue();  
}
public class ComplaintAdapter{
     private String value;

     public ComplaintAdapter(String value){
        this.value = value;
     }

     public String getValue(){
        return this.value;
     }
} 
并以这种方式更改类别:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.activity_engineer_recycler );
    String value = "hello";
    ComplaintAdapter adapter = new ComplaintAdapter(value);

    //access to value
    adapter.getValue();  
}
public class ComplaintAdapter{
     private String value;

     public ComplaintAdapter(String value){
        this.value = value;
     }

     public String getValue(){
        return this.value;
     }
} 

要将任何值传递给类,您应该创建一个适当的构造函数。在这种情况下,您应该这样做:

public class complaintAdapter {

  private String value;

  public complaintAdapter(String value) {
    this.value = value;
  }
}
然后在活动中创建一个实例:

complaintAdapter adapter = new complaintAdapter(value);

另外,正如Java代码约定规则所说,任何Java类名都应该以大写符号开头,所以最好将类重命名为CompletAdapter,在CompletAdapter类中创建一个构造函数

public class ComplaintAdapter{
 private String value;

 public ComplaintAdapter(String value){
    this.value = value;
 }
}
然后,当您创建此类的对象时,将值传递给构造函数

ComplaintAdapter adapter = new ComplaintAdapter(value); 

将值放入全局变量,并在任何地方和类中访问它。向类中添加一个setter,并将其命名为my activity和class是两个不同的文件@zubariaashraft,这无关紧要。您可以在类中将字符串变量设为静态,然后从“活动”设置其值@NikhilLohar@ZubariaAshraf:不必要地使用static是不好的。在PlumintAdapter类中如何访问此子类之外的值在value variable中可用您可以在该类中的任何位置访问该值如果我的答案对您有帮助,请在PlumintAdapter类中更新我的答案如何访问此子类之外的值子类如何访问此子类之外的值您在名为adapter的onCreate方法中有引用。您可以将setter和getter方法添加到completAdapter,然后像adapter.getValue那样使用它们,返回值