无法通过FragmentTabHost从一个片段到达edittext

时间:2013-12-23 15:12:18

标签: android android-fragments

不确定如何正确说明。我有课

TabsFragmentActivity extends FragmentActivity implements
    FragmentTabHost.OnTabChangeListener, OnClickListener

现在在第一个标签上

StartFragment extends Fragment implements OnClickListener

我有一个打开的按钮

WinnersFragment extends ListFragment

通过

fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.addToBackStack("WINNERS_FRAGMENT");
        fragmentTransaction.replace(android.R.id.tabhost, fragment2);
        fragmentTransaction.commit();

现在,在这个Winners片段中,我有一个按钮和一个edittext。我到达了TabsFragmentActivity中的按钮,它触发得很好。但是我似乎无法达到我的编辑文本。所以在我的TabsFragmentActivity中我有

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ibSearch:

        LayoutInflater inflater = LayoutInflater.from(this);
        final View textenter = inflater.inflate(R.layout.winners_list, null);
    final EditText userinput = (EditText) textenter
                .findViewById(R.id.etSearchState);

    String searchState = userinput.getText().toString();
    System.out.print("The input is: "+searchState);          
    fragment2.InitTask(searchState);
    if (userinput.length() > 0) {
    userinput.getText().clear();
    }
    break;  

}
}

其中WinnersFragment fragment2 = new WinnersFragment(); fragment2.InitTask(searchState);触发但是searchState为null。

我相信我的问题在这里,但我无法弄清楚。 LayoutInflater inflater = LayoutInflater.from(this);             final查看textenter = inflater.inflate(R.layout.winners_list,null);

1 个答案:

答案 0 :(得分:0)

问题在于:final View textenter = inflater.inflate(R.layout.winners_list, null);您创建了新视图,并且从不将其添加到视图层次结构中的任何容器。您应该在onCreateView()中实施WinnersFragment,在那里夸大您的布局并将其返回。之后,此View将分配到WinnersFragment,您可以找到EditText,例如fragment2.getView().findViewById(R.id.etSearchState);