我想知道如何在用户更改城市名称时更新片段的片段recyclelerview数据。
假设我在我的活动中有一个textview(其中包含城市名称)我使用intent将textview的值发送到片段,这是第一次它的工作正常但是当textview的值改变了片段recyclelerview时数据不会根据textview值(即城市名称)进行更新。
为了更好地理解,我举了一个例子。
假设在我的textview中,城市名称首次设置为MUMBAI,数据从数据库到recyclerview完全正常,但是当texview值更改为假设Pune时,片段recyclelerview数据将不会根据城市名称进行更新。 / p>
根据城市名称,工作与OLX获取结果相同。
提前谢谢你,希望我能正确解释。
答案 0 :(得分:0)
我会在活动中的textView中添加一个textChangeListener,并在片段内创建一个方法来接收数据并更新片段。
或许这样的事情:
Fragment frag = ...
tv.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
...
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
...
}
@Override
public void afterTextChanged(Editable s) {
frag.updateSomething("some argument");
}
});
答案 1 :(得分:0)
创建 UpdateCallback 界面:
interface UpdateCallback {
public void update(String s);
}
在片段上实施更新方法:
class MyFragment Extends Fragment implements UpdateCallback {
@Override
public void update(String s){
...
}
}
最后在 afterTextChanged():
中调用方法textView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
...
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
...
}
@Override
public void afterTextChanged(Editable s) {
myFragment.update(s);
}
});