Java 你能从Android中的类内部传递一个类的实例吗?

Java 你能从Android中的类内部传递一个类的实例吗?,java,android,android-studio,Java,Android,Android Studio,我正在实现一个片段,在编辑文本时(使用TextWatcher),我正在使用接口将数据传递给父活动 我想知道是否可以将类本身的实例作为传递给活动的数据来传递?这样我就不必一次只传输一个参数 我也可以这样做 活动: Fragment frag = new FragmentClass(); // ... start the fragment FragmentClass.java中的: editText = findViewById(R.id.edittext); editText.addTextCh

我正在实现一个片段,在编辑文本时(使用TextWatcher),我正在使用接口将数据传递给父活动

我想知道是否可以将类本身的实例作为传递给活动的数据来传递?这样我就不必一次只传输一个参数

我也可以这样做

活动:

Fragment frag = new FragmentClass();
// ... start the fragment
FragmentClass.java中的:

editText = findViewById(R.id.edittext);
editText.addTextChangedListener(new TextWatcher() {
    ...
    public void afterTextChanged(...) {
    listener.onChangedListener(PASS IN THE INSTANCE OF THE CLASS ITSELF???);
    }
});
这是为了避免需要执行以下操作:

listener.onChangedListener(String field1, String field2, String field3, etc..);

如果我理解你的意思,你应该这样想

    listener.onChangedListener(FragmentClass.this);
另一方面,您的侦听器应该接收这个类的实例

    interface MyListener {
        void onChangedListener(FragmentClass fragmentClass);
    }

如果我理解你的意思,你应该这样想

    listener.onChangedListener(FragmentClass.this);
另一方面,您的侦听器应该接收这个类的实例

    interface MyListener {
        void onChangedListener(FragmentClass fragmentClass);
    }

您可以从片段访问父活动的公共属性。不确定这是否是你想要完成的。你可以试试这个

活跃

public String myText;
零碎

YourActivity parentActivity;
parentActivity = (YourActivity)getActivity(); 

//access the string property of your activity or do something else. Ex. parentActivity.myText = "Sample text" 

这只是我记忆中的代码草稿,因为我现在不在IDE上。

您可以从片段访问父活动的公共属性。不确定这是否是你想要完成的。你可以试试这个

活跃

public String myText;
零碎

YourActivity parentActivity;
parentActivity = (YourActivity)getActivity(); 

//access the string property of your activity or do something else. Ex. parentActivity.myText = "Sample text" 
这只是我记忆中的代码草稿,因为我现在不在IDE上。

您可以创建DTO(数据传输对象,只是简单类)类

然后像这样使用它:

MyClass dto = MyClass(field1, field2, field3);
listener.onChangedListener(dto);
您可以创建DTO(数据传输对象,只是简单类)类

然后像这样使用它:

MyClass dto = MyClass(field1, field2, field3);
listener.onChangedListener(dto);

但是addTextChangedListener一次只提供一个字符串,那么为什么需要传递任何类实例呢。如果您对其他人使用相同的回调,请维护一个用于编辑文本和传递数据的枚举。您能详细说明第二部分吗?我对每个edittext(及其对应的字符串字段)使用相同的回调。你的意思是我只是添加了第二个参数,带有“id”或者类似的内容,基于正在更改的字段,仍然一次只传递一个字符串@AnkitAmanyes定义了类似onChangedListener(枚举EditTextType,字符串字段)的内容,因此EditTextType将有一些名称、电子邮件。。。。或者你也可以使用id或标记来传递任何对其他人来说唯一的东西。但是你的addTextChangedListener一次只给出一个字符串,那么为什么你需要传递任何类实例呢。如果您对其他人使用相同的回调,请维护一个用于编辑文本和传递数据的枚举。您能详细说明第二部分吗?我对每个edittext(及其对应的字符串字段)使用相同的回调。你的意思是我只是添加了第二个参数,带有“id”或者类似的内容,基于正在更改的字段,仍然一次只传递一个字符串@AnkitAmanyes定义了类似onChangedListener(枚举EditTextType,字符串字段)的内容,因此EditTextType将有一些名称、电子邮件。。。。或者,您可以使用id或标记,也可以传递任何对其他人来说唯一的信息。