我在主要活动中动态添加了片段(从secfrag.xml中膨胀)。我的主要活动中有两个按钮。一个用于添加片段,另一个用于更改片段的文本。我已成功将片段添加到我的活动中,但我无法更改片段的textview文本。我怎样才能做到这一点。
public class MyActivity extends ActionBarActivity {
Button addFragment;
Button changeFragText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
addFragment = (Button) findViewById(R.id.mybtn);
changeFragText = (Button) findViewById(R.id.mybtn2);
addFragment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Secfragjava secfragjava = new Secfragjava();
getFragmentManager().beginTransaction().add(R.id.mainholder, secfragjava).commit();
}
});
changeFragText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//how can i have the fragment and change its textview
TextView frv=(TextView) getFragmentManager().findFragmentById(R.id.container).getView().findViewById(R.id.mysecText);
frv.setText("raton");
}
});
}
答案 0 :(得分:4)
您应该在片段内部创建一个方法来更改文本。
e.g。
public void changeText(){
//this textview should be bound in the fragment onCreate as a member variable
TextView frv=(TextView) getView().findViewById(R.id.mysecText);
frv.setText("raton");
}
然后在你的onClickListener中你可以调用那个方法:
((Secfragjava)getFragmentManager().findFragmentById(R.id.container)).changeText();