我在一个片段中有listview,它显示sqlite数据库中的项目。当我点击一个项目时,它会打开一个菜单以允许打开,添加到另一个列表视图或删除。我希望能够将其添加到另一个片段中的另一个列表视图中。我尝试使用捆绑包将其添加到另一个listview但我没有运气。我有一个计划创建另一个数据库表来存储添加的数据并将其显示在新的列表视图中。这会有用吗?或者你们中的任何一个人有另外的建议吗?
答案 0 :(得分:1)
您可以将数据从一个片段发送到另一个片段。执行此操作的最佳方法是通过父活动。像这样:
public class MyActivity extends FragmentActivity implements MyFragmentListener {
MyFragment1 frag1;
MyFragment2 frag2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(0);
FragmentManager fm = getSupportFragmentManager();
frag1 = (MyFragment1) fm.findFragmentByTag("frag1");
frag1.setListener(this);
frag2 = (MyFragment2) fm.findFragmentByTag("frag2");
}
// Call this function from frag1 when you want to send the data to frag2
public void addToFrag2(ListItem item) {
frag2.addToList(item);
}
}
// Define whatever methods the fragments want to use to pass data back and forth
public interface MyFragmentListener {
void addToFrag2(ListItem item);
}