【发布时间】:2018-07-30 23:26:58
【问题描述】:
我的问题包括Activity 和RecyclerViewAdapter。
我想将 Uri 的 Stringvalue 从我的Activity 传递给我的RecyclerViewAdapter。
为了传递我正在使用这个 Getter 和 Setter 类:
updateDataAdapter.java
public class updateDataAdapter {
public String testurl;
public String getTesturl() {
return testurl;
}
public void setTesturl(String testurl) {
this.testurl = testurl;
}
}
Recyclerview 使用((Activity) context).startActivityForResult(); 发送一个intent,Activity 使用onActivityResult 接收intent 和RequestCode。
来自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);
Context 是Activity(在设置适配器时作为参数给出)。
onActivityResult 在Activty 中的代码:
@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();
}
}
}
问题:
如果我在RecyclerViewAdapter 中调用getTesturl,则字符串为空。
这就是为什么我尝试了不同的方法来定位问题。
首先我将(在我的updateDataAdapter.java)public String testurl; 设置为public String testurl = "This is my text"; 并调用getTesturl 收到文本“这是我的文本”。
所以我可以断定问题出在setTesturl。
所以我尝试用updateDataAdapter.setTesturl("This is my text");替换updateDataAdapter.setTesturl(String.ValueOf(uri2));
但在这种情况下,字符串是空的。
我该如何解决这个问题,为什么我的代码不起作用?
请帮助我。
【问题讨论】:
标签: java android android-studio oop getter-setter