我试图获得用户输入使用编辑文本从片段后按下一个按钮。由于某种原因,按钮是可点击的,但没有数据从编辑文本。
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/txtUserInput"/>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnTest"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"/>
公共类MainActivity扩展了AppCompatActivity {
TestFragment testFragment = new TestFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.container, testFragment)
.commit();
}
}
公共类TestFragment扩展片段{
Button btnTest;
EditText txtUserInput;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_test, container, false);
btnTest = view.findViewById(R.id.btnTest);
txtUserInput = view.findViewById(R.id.txtUserInput);
String input = txtUserInput.getText().toString();
btnTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), input, Toast.LENGTH_LONG).show();
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
2条答案
按热度按时间kx1ctssn1#
在click侦听器中添加gettext()
因为你想从编辑文本的数据点击按钮后,所以一旦你点击,然后点击事件被触发,然后你应该从编辑字段获得数据
brccelvz2#
你可以像这样做,视图用于获取片段的根视图。