我有一个MainActivity和两个片段,即Input.java和Output.java。我想访问位于输入片段中output_layout的textview(更确切地说,如果我点击input_layout中的按钮,output_layout的textview应该更改)。我怎样才能做到这一点?我在main_activity中动态调用这些input_layout和out_put布局。
我初学者,请原谅我的无知。我们将非常感谢您的帮助。提前谢谢。
答案 0 :(得分:1)
尝试使用接口。 例如。
public interface OnOutputFragmentTextChanger {
public void onChangeText(String what);
}
在Input.class的onAttach方法中做下一步:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnOutputFragmentTextChanger) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnOutputFragmentTextChanger");
}
}
在你的OnClickListener中调用mCallback.onChangeText(" Foooo");
接下来在Output类中创建方法
public void updateInputView(String what)
{
mTextView.setText(what);
}
接下来在Activity和Override方法中实现OnOutputFragmentTextChanger onChangeText(String what):
public class MainActivity extends FragmentActivity implements OnOutputFragmentTextChanger
{
//do somwthing
@Override
public void onChangeText(String what)
{
InputFragment inputfragment = (InputFragment)
getSupportFragmentManager().findFragmentById(R.id.fragment); // or try findFragmentByTag
if (inputfragment != null)
{
inputfragment.updateInputView("some string");
}
}
}
答案 1 :(得分:-1)
您可以将输入布局中的TextView声明为相应片段中的公共静态,并直接在其他片段中将其设置为您要设置按钮的值onklick