如何从android中的fragment类中的Edittext获取数字?

时间:2018-04-08 12:54:03

标签: android android-edittext toast

我对EditText有一个非常奇怪的问题!

我使用EditText,用户可以输入他的号码,我想在Toast /另一个Activity中显示它。但最后Toast没有显示任何内容。这是我的代码。我怎么解决呢?

我的java代码:

 public class Step2Fragment extends Fragment {
    private EditText editText;
    public static String times;
    private Button start;

    public Step2Fragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(final LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_step2, container, false);

        EditText editText = (EditText) view.findViewById(R.id.getNum);
        times= editText.getText().toString();

        start= (Button) view.findViewById(R.id.startCounting);
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getContext(),times,Toast.LENGTH_LONG).show();
                Intent intent=new Intent(getContext(), CountActivity.class);
                //intent.putExtra("REPEATS",number);
                startActivity(intent);
            }
        });
        return view;
    }

和我的xml代码:

<FrameLayout
...
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/texts"
    android:text="enter number please"
    android:gravity="center"
    android:layout_marginBottom="15dp"/>

    <EditText
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:id="@+id/getNum"
        android:inputType="number"/>

<Button
    android:layout_width="75dp"
    android:layout_height="45dp"
    android:id="@+id/startCounting"
    android:layout_marginTop="20dp"
    android:layout_gravity="center"/>


  </LinearLayout>
</FrameLayout>

1 个答案:

答案 0 :(得分:1)

  

times = editText.getText()。toString();

onClick方法中使用此行。

        start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            times= editText.getText().toString();
            Toast.makeText(getContext(),times,Toast.LENGTH_LONG).show();
            Intent intent=new Intent(getContext(), CountActivity.class);
            //intent.putExtra("REPEATS",number);
            startActivity(intent);
        }
    });

您要将空白内容分配给times,因为该时间EditText为空。用户单击按钮时必须获取内容。