Java 为什么在类中设置字符串是不可能的,但获取字符串却是可能的?

Java 为什么在类中设置字符串是不可能的,但获取字符串却是可能的?,java,android,android-studio,oop,getter-setter,Java,Android,Android Studio,Oop,Getter Setter,我的问题包括一个活动和一个回收服务适配器。 我想将Uri的Stringvalue从我的活动传递到我的回收服务适配器。 为了通过考试,我使用这个Getter和Setter类: updateDataAdapter.java Recyclerview发送带有((活动)上下文)的意图和活动使用onActivityResult接收意图和请求代码 来自Recyclerview.java的代码: Intent intent = new Intent(); intent.setType("image/*");

我的问题包括一个
活动
和一个
回收服务适配器
。 我想将Uri的Stringvalue从我的
活动
传递到我的
回收服务适配器
。 为了通过考试,我使用这个Getter和Setter类:

updateDataAdapter.java Recyclerview发送带有
((活动)上下文)的意图和活动使用
onActivityResult
接收
意图
和请求代码

来自Recyclerview.java的代码:

Intent intent = new Intent();

intent.setType("image/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

((Activity) context).startActivityForResult(Intent.createChooser(intent, "Select Image From Gallery"), 1);
上下文
活动
(在设置适配器时作为参数给出)

activity中的onActivityResult代码:

@Override
public void onActivityResult(int RC, int RQC, Intent I) {

    super.onActivityResult(RC, RQC, I);

    if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) {

        Uri uri2 = I.getData();

        updateDataAdapter  updateDataAdapter = new updateDataAdapter();

        try { 
            updateDataAdapter.setTesturl(String.ValueOf(uri2));
        } catch(IOException e) {
            e.printStackTrace();
        }
    }
}
问题: 如果在我的
RecycleServiceAdapter
中调用
getTesturl
,则字符串为空

这就是为什么我尝试了不同的方法来定位问题

首先,我设置(在我的
updateDataAdapter.java
)公共字符串testurl
to
publicstringtesturl=“这是我的文本”
并调用
getTesturl
接收文本“这是我的文本”

因此,我可以得出结论,问题在于
setTesturl
。 所以我尝试替换
updateDataAdapter.setTesturl(String.ValueOf(uri2))updateDataAdapter.setTesturl(“这是我的文本”)

但在本例中,字符串为空

我如何解决这个问题,为什么我的代码不起作用

请帮帮我

 if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) {

    Uri uri2 = I.getData();

    updateDataAdapter  updateDataAdapter = new updateDataAdapter();

    try { 
        updateDataAdapter.setTesturl(String.ValueOf(uri2));
    }
    catch(IOException e){
        e.printStackTrace();
   }}
  }

在这里,您可以创建一个新的
updateDataAdapter
。将新创建的
updateDataAdapter
替换为现有的
RecycleServiceAdapter

'updateDataAdapter'应声明为类成员变量

private updateDataAdapter updateDataAdapter = new updateDataAdapter(); @Override public void onActivityResult(int RC, int RQC, Intent I) { super.onActivityResult(RC, RQC, I); if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) { Uri uri2 = I.getData(); try { updateDataAdapter.setTesturl(String.ValueOf(uri2)); } catch(IOException e){ e.printStackTrace(); }} } 私有updateDataAdapter updateDataAdapter=新updateDataAdapter(); @凌驾 活动结果上的公共无效(int RC、int RQC、Intent I){ super.onActivityResult(RC、RQC、I); 如果(RC==1&&RQC==RESULT\u OK&&I!=null&&I.getData()!=null){ Uri uri2=I.getData(); 试试{ updateDataAdapter.setTesturl(String.ValueOf(uri2)); } 捕获(IOE异常){ e、 printStackTrace(); }} } private updateDataAdapter updateDataAdapter = new updateDataAdapter(); @Override public void onActivityResult(int RC, int RQC, Intent I) { super.onActivityResult(RC, RQC, I); if (RC == 1 && RQC == RESULT_OK && I != null && I.getData() != null) { Uri uri2 = I.getData(); try { updateDataAdapter.setTesturl(String.ValueOf(uri2)); } catch(IOException e){ e.printStackTrace(); }} }