Java Android将数据从活动类传递到类

Java Android将数据从活动类传递到类,java,android,Java,Android,我想将字符串数据从活动类传递到一个TCPClient类。基本上,这个字符串包含用户从我的活动类视图输入的IP地址。然后作为回报,我需要将IP地址传递给TCPClient类 下面是我正在研究的代码 MainActivity.class: String add1 = etIPAddress1.getText().toString(); String add2 = etIPAddress2.getText().toString();

我想将字符串数据从活动类传递到一个TCPClient类。基本上,这个字符串包含用户从我的活动类视图输入的IP地址。然后作为回报,我需要将IP地址传递给TCPClient类

下面是我正在研究的代码

MainActivity.class:

 String add1 = etIPAddress1.getText().toString();
                    String add2 = etIPAddress2.getText().toString();
                    String add3 = etIPAddress3.getText().toString();
                    String add4 = etIPAddress4.getText().toString();
                    String new_IPAddress = add1 + "." + add2 + "." + add3 + "." + add4; 

                    Log.d("E", new_IPAddress);
public class TCPClient {

private String serverMessage;

//public static final String SERVERIP = "192.168.254.105"; //your computer IP address
public static final String SERVERIP = "";

public static final int SERVERPORT = 4444;
private OnMessageReceived mMessageListener = null;
private boolean mRun = false;

PrintWriter out;
BufferedReader in;

/**
 *  Constructor of the class. OnMessagedReceived listens for the messages received from server
 */
public TCPClient(OnMessageReceived listener) {
    mMessageListener = listener;
}
TCPClient.class:

 String add1 = etIPAddress1.getText().toString();
                    String add2 = etIPAddress2.getText().toString();
                    String add3 = etIPAddress3.getText().toString();
                    String add4 = etIPAddress4.getText().toString();
                    String new_IPAddress = add1 + "." + add2 + "." + add3 + "." + add4; 

                    Log.d("E", new_IPAddress);
public class TCPClient {

private String serverMessage;

//public static final String SERVERIP = "192.168.254.105"; //your computer IP address
public static final String SERVERIP = "";

public static final int SERVERPORT = 4444;
private OnMessageReceived mMessageListener = null;
private boolean mRun = false;

PrintWriter out;
BufferedReader in;

/**
 *  Constructor of the class. OnMessagedReceived listens for the messages received from server
 */
public TCPClient(OnMessageReceived listener) {
    mMessageListener = listener;
}

这里有人知道怎么做吗?我非常感谢你的帮助。谢谢。

在MainActivity.java中使用此选项

Intent myIntent = new Intent(MainActivity.this, TCPClient.class);
myIntent.putExtras("new_IPAddress", new_IPAddress);
startActivity(myIntent);
在TCPClient.java中使用此选项

Bundle extra = getIntent().getExtras();
if(extra != null) {
String value = extra.getString("new_IPAddress")


  }
在此之后,可以在任何需要的地方使用字符串


快乐编码:)

在MainActivity.java中使用它

Intent myIntent = new Intent(MainActivity.this, TCPClient.class);
myIntent.putExtras("new_IPAddress", new_IPAddress);
startActivity(myIntent);
在TCPClient.java中使用此选项

Bundle extra = getIntent().getExtras();
if(extra != null) {
String value = extra.getString("new_IPAddress")


  }
在此之后,可以在任何需要的地方使用字符串


快乐编码:)

创建一个以IP地址为参数的构造函数

public class TCPClient {

    private String SERVERIP = "";

    public TCPClient(String serverIp){

        SERVERIP = serverIp;

    }

}
然后在你的活动中

TCPClient client = new TCPClient(new_IPAddress);
然而,不正确的命名约定让我的眼睛流血;)这是固定的:

public class TcpClient {

    private String serverIp = "";

    public TcpClient(String serverIp){

        this.serverIp = serverIp;

    }

}


...

TcpClient client = new TcpClient(newIpAddress);

创建一个以IP地址为参数的构造函数

public class TCPClient {

    private String SERVERIP = "";

    public TCPClient(String serverIp){

        SERVERIP = serverIp;

    }

}
然后在你的活动中

TCPClient client = new TCPClient(new_IPAddress);
然而,不正确的命名约定让我的眼睛流血;)这是固定的:

public class TcpClient {

    private String serverIp = "";

    public TcpClient(String serverIp){

        this.serverIp = serverIp;

    }

}


...

TcpClient client = new TcpClient(newIpAddress);

首先,由于
TCPClient
中的
SERVERIP
被声明为
final
,因此无法更改该值。您可以:

1) 删除初始值并创建新构造函数(推荐)

然后在
MainActivity
中,调用
TCPClient client=newtcpclient(您的侦听器,new\u IPAddress)

或者,2)删除
final
修饰符

public static String SERVERIP = "";

然后在
MainActivity
中,调用
TCPClient.SERVERIP=new\u IPAddress

首先,由于
TCPClient
中的
SERVERIP
已声明为
final
,因此无法更改该值。您可以:

1) 删除初始值并创建新构造函数(推荐)

然后在
MainActivity
中,调用
TCPClient client=newtcpclient(您的侦听器,new\u IPAddress)

或者,2)删除
final
修饰符

public static String SERVERIP = "";

然后在
MainActivity
中,调用
TCPClient.SERVERIP=new\u IPAddress

您可以通过两种方式实现这一点
因为您尚未在MainActivity中声明TCPClient对象/引用。以下两种方法可以帮助您实现这一目标。它们如下:

1) 。内部阶级

TCPClient作为内部类甚至可以访问MainActivity私有变量

`public class MainActivity  { onCreate().... /* And other activity methods */ public class TCPClient { /* You class implementation here */} }`
2) 。具有带ip参数的构造函数的其他类

TCPClient
构造函数中传递参数

public class TCPClient { public TCPClient(Parameters ... params ) {} /* Implementation here */}

然后从MainActivity
TCPClient TCPClient=新TCPClient(参数…)

您可以通过两种方式实现这一点
因为您尚未在MainActivity中声明TCPClient对象/引用。以下两种方法可以帮助您实现这一目标。它们如下:

1) 。内部阶级

TCPClient作为内部类甚至可以访问MainActivity私有变量

`public class MainActivity  { onCreate().... /* And other activity methods */ public class TCPClient { /* You class implementation here */} }`
2) 。具有带ip参数的构造函数的其他类

TCPClient
构造函数中传递参数

public class TCPClient { public TCPClient(Parameters ... params ) {} /* Implementation here */}

然后从MainActivity
TCPClient TCPClient=新TCPClient(参数…)

我假设您至少对Java语言有基本的了解。为了得到任何有意义的答案,你需要提供更多关于你遇到的问题的细节。“如何将数据从一个对象传递到另一个对象”这一简单问题过于简单和通用,无法得到任何高质量的答案。特别是:

实现简单的mutator/setter或通过构造函数传递数据有什么错

此外:

  • 您是否询问如何将数据从活动传递到现有活动 对象引用,其中引用不在活动范围内
在这种情况下,问题更多的是如何从活动中获取对现有对象的对象引用

  • 您是否在询问如何将数据传递到活动中保存的对象引用
在这种情况下,问题更多的是如何管理活动中的对象引用,特别是在整个活动生命周期中维护对象引用


今后,请提供尽可能多的详细信息,以便我们更好地回答您的问题。

我假设您至少对Java语言有基本的了解。为了得到任何有意义的答案,你需要提供更多关于你遇到的问题的细节。“如何将数据从一个对象传递到另一个对象”这一简单问题过于简单和通用,无法得到任何高质量的答案。特别是:

实现简单的mutator/setter或通过构造函数传递数据有什么错

此外:

  • 您是否询问如何将数据从活动传递到现有活动 对象引用,其中引用不在活动范围内
在这种情况下,问题更多的是如何从活动中获取对现有对象的对象引用

  • 您是否在询问如何将数据传递到活动中保存的对象引用
在这种情况下,问题更多的是如何管理活动中的对象引用,特别是在整个活动生命周期中维护对象引用


将来请提供尽可能多的详细信息,以便我们更好地回答您的问题。

从哪里,您可以调用TCPClient类…@MdAbdulGafur对不起,我不明白您的意思?您打算从活动类转换为TCP类ryt吗?@kathir是的,这就是我想要的。要将IP地址用户输入从“活动”获取到我的TCPClient类,是否需要将IP作为服务器IP传递?如果是,则1)删除
公共静态最终字符串SERVERIP=”“中的
最终
,或2)创建新常量