我有两个片段并排坐在同一个活动中。当我触摸右侧片段(片段 B)中的按钮时,我需要左侧片段中的 TextView 来更新(片段 A)。我一直在寻找最好的方法来做到这一点,但似乎没有什么能满足我的需要。有人可以给我一个如何编码的例子吗?片段 A 通过 XML 布局设置,片段 B 以编程方式加载到容器中。我尝试通过使用片段 A 中的方法更新文本并从父活动中的方法调用该方法来完成此操作。然后我从片段 B 调用父活动中的方法。
这是片段B中声明接口并调用接口中的方法的代码
AttackCards attackCards;
public interface AttackCards {
public void deckSize();
}
public void onAttach(DeckBuilder deckBuilder) {
super.onAttach(deckBuilder);
attackCards = (AttackCards) deckBuilder;
}
attackCards.deckSize(); //this is in my onclick methods
这是实现接口并调用片段A中的方法的活动中的代码
public class DeckBuilder extends Activity implements AttackCards{
public void deckSize() {
DeckBuilderFragment deckBuilderFragment = (DeckBuilderFragment)getFragmentManager().
findFragmentById(R.id.deckbuilder_fragment);
deckBuilderFragment.deckSize();
}
这是片段 A 中的方法,它将文本视图附加到共享首选项值的内容
public void deckSize() {
deckSize = (TextView) getView().findViewById(R.id.decksize);
final SharedPreferences defaultDeck = getActivity()
.getSharedPreferences("defaultDeck", Context.MODE_PRIVATE);
deckSize.setText(String.valueOf(defaultDeck.getInt("decksize", 0)));
}
可悲的是,这种尝试只是在触摸按钮时给我带来了一个空指针。我得到一个空指针
attackCards.deckSize(); //this is in my onclick methods
有人可以帮我举一个如何正确执行此操作的示例吗?