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
topublicstringtesturl=“这是我的文本”
并调用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();
}}
}