Android Fragments 如何在Android Java片段中从EditText获取输入

bjg7j2ky  于 2023-02-08  发布在  Android
关注(0)|答案(2)|浏览(170)

我试图获得用户输入使用编辑文本从片段后按下一个按钮。由于某种原因,按钮是可点击的,但没有数据从编辑文本。

<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);
}
kx1ctssn

kx1ctssn1#

在click侦听器中添加gettext()

btnTest.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) { String input=txtUserInput.getText().toString()
        Toast.makeText(getActivity(), input, Toast.LENGTH_LONG).show();
    }
});

因为你想从编辑文本的数据点击按钮后,所以一旦你点击,然后点击事件被触发,然后你应该从编辑字段获得数据

brccelvz

brccelvz2#

你可以像这样做,视图用于获取片段的根视图。

View view = inflater. Inflate(R.layout.fragment_test, container, false);
EditText editText = view.findViewById(R.id.txtUserInput);
Button btnTest = view.findViewById(R.id.btnTest);

String input ="";
btnTest.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         input=editText.getText().toString()
    }
});

相关问题