0
我有一個問題與片段之間comuunicating之間的動態剪輯,我mannaged使用接口系統來通報如果片段都可查看,但是當我查看它們時,我可以sepretly我可以因爲他們還沒有標籤,所以沒有用他們的行爲,任何想法?片段之間的通信時,只有其中一個是可見的
主activty
公共類MainActivity延伸FragmentActivity實現OnClickListener,通訊這裏{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (isSingleFragment()) {
Button btn_color = (Button) findViewById(R.id.button_color);
Button btn_text = (Button) findViewById(R.id.button_text);
Button btn_list = (Button) findViewById(R.id.button_list);
btn_color.setOnClickListener(this);
btn_list.setOnClickListener(this);
btn_text.setOnClickListener(this);
singleFragActions();
} else {
doubleFragActions();
}
// some more stuff happens
@Override
public void apply(String data) {
Log.d("data", data+"");
FragmentManager fm = getSupportFragmentManager();
Frag_list frag_list = (Frag_list) fm.findFragmentByTag("list");
//i cannot use id because the fragment in
//MainActivity are in a layout and are enterd dynamicaly
frag_list.addItem(data);
}
三個片段,當在小屏幕上,在被示出並在上面改變他們三個扣arrounf,如果上平板,所有三個都持續顯示,這是接口
public interface Communicator {
public void apply(String data);
}
frag_text(第一片段)
public class Frag_text extends Fragment implements OnClickListener{
Communicator comm;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// stuff
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
comm = (Communicator) getActivity();
}
@Override
public void onClick(View v) {
EditText input = (EditText) getView().findViewById(R.id.frag_text_edit);
TextView output = (TextView) getView().findViewById(R.id.frag_text_show);
String text_get = input.getText().toString();
output.setText("hello "+text_get+" how are you today?");
comm.apply(text_get);
}
}
frag_list(其它片段)
public class Frag_list extends Fragment{
ArrayList<String> list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_list, container, false);
list = new ArrayList<String>();
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, list);
ListView lv = (ListView) view.findViewById(R.id.list_frag);
lv.setAdapter(adapter);
return view;
}
public void addItem(String data){
list.add(data);
}
}
如何我訪問其他片段,如果它沒有一個標籤嗎?
您的問題越來越片段類實例在活動? – Raghunandan
@Raghunandan是的,因爲它不在屏幕上,我還沒有給它一個TAG,它不知道它是插入在一個框架佈局 –
你不能使用'Frag_list frag = new Frag_list()'檢查它的附加,然後調用所需的方法 – Raghunandan