我用eventbus库解决了这个问题。
在TrimePab2事件总线上注册,并创建了一个OnEnter方法:
EventBus.getDefault().register(this);
@Subscribe
public void onEvent(CustomMessageEvent event){
TextView nameAndNum = new TextView(view.getContext());
nameAndNum.append(event.getCustomMessage());
nameAndNumbersLayoutSMS.addView(nameAndNum);
}
customMessageEvent类如下所示:
public class CustomMessageEvent {
private String customMessage;
public String getCustomMessage() {
return customMessage;
}
public void setCustomMessage(String customMessage) {
this.customMessage = customMessage;
}
在choosesmsactivity中的onclicklistener按钮中,我添加了一个eventbus事件:
selectedNumberBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for(int i=0; i < nameAndNumbersLayoutSMS.getChildCount(); i++){
if(nameAndNumbersLayoutSMS.getChildAt(i) instanceof CheckBox){
CheckBox checkBox = (CheckBox) nameAndNumbersLayoutSMS.getChildAt(i);
if(checkBox.isChecked()){
selectedNamesAndNumbers.add(checkBox.getText().toString());
CustomMessageEvent event = new CustomMessageEvent();
event.setCustomMessage(checkBox.getText().toString());
EventBus.getDefault().post(event);
}
}
}
}
});