不确定如何正确说明。我有课
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);
答案 0 :(得分:0)
问题在于:final View textenter = inflater.inflate(R.layout.winners_list, null);
您创建了新视图,并且从不将其添加到视图层次结构中的任何容器。您应该在onCreateView()
中实施WinnersFragment
,在那里夸大您的布局并将其返回。之后,此View
将分配到WinnersFragment
,您可以找到EditText
,例如fragment2.getView().findViewById(R.id.etSearchState);