有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java EditText getText不在按钮中工作单击

我的活动中有两个编辑文本。这里我提供了UI-XML

 <安卓x.constraintlayout.widget.ConstraintLayout
            安卓:layout_width="match_parent"
            安卓:layout_height="match_parent">

            <Button
                安卓:id="@+id/button_insta"
                安卓:layout_width="135dp"
                安卓:layout_height="0dp"
                安卓:layout_marginBottom="33dp"
                安卓:text="Download"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />

            <EditText
                安卓:id="@+id/editUrli"
                安卓:layout_width="wrap_content"
                安卓:layout_height="0dp"
                安卓:layout_marginTop="64dp"
                安卓:layout_marginBottom="18dp"
                安卓:ems="10"
                安卓:inputType="textPersonName"
                安卓:text=""
                安卓:textColor="#0C0C0C"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                安卓:id="@+id/textView2"
                安卓:layout_width="177dp"
                安卓:layout_height="39dp"
                安卓:layout_marginEnd="81dp"
                安卓:layout_marginRight="81dp"
                安卓:text="Paste Instagram video link to download "
                安卓:textStyle="bold"
                app:layout_constraintBottom_toBottomOf="@+id/imageView3"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/imageView3"
                app:layout_constraintTop_toTopOf="@+id/imageView3" />

            <ImageView
                安卓:id="@+id/imageView3"
                安卓:layout_width="78dp"
                安卓:layout_height="43dp"
                安卓:layout_marginStart="41dp"
                安卓:layout_marginLeft="41dp"
                安卓:layout_marginTop="16dp"
                安卓:layout_marginEnd="18dp"
                安卓:layout_marginRight="18dp"
                安卓:src="@drawable/insta"
                app:layout_constraintEnd_toStartOf="@+id/textView2"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </安卓x.constraintlayout.widget.ConstraintLayout>
    </com.google.安卓.material.card.MaterialCardView>

    <com.google.安卓.material.card.MaterialCardView
        安卓:id="@+id/card"
        安卓:layout_width="0dp"
        安卓:layout_height="200dp"
        安卓:layout_margin="8dp"
        安卓:layout_marginStart="16dp"
        安卓:layout_marginLeft="16dp"
        安卓:layout_marginTop="8dp"
        安卓:layout_marginEnd="16dp"
        安卓:layout_marginRight="16dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="MissingConstraints">

        <安卓x.constraintlayout.widget.ConstraintLayout
            安卓:layout_width="match_parent"
            安卓:layout_height="match_parent">

            <EditText
                安卓:id="@+id/editUrl"
                安卓:layout_width="wrap_content"
                安卓:layout_height="0dp"
                安卓:layout_marginTop="64dp"
                安卓:layout_marginBottom="18dp"
                安卓:ems="10"
                安卓:inputType="textPersonName"
                安卓:text=""
                安卓:textColor="#0C0C0C"
                app:layout_constraintBottom_toTopOf="@+id/button_download"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <Button
                安卓:id="@+id/button_download"
                安卓:layout_width="135dp"
                安卓:layout_height="0dp"
                安卓:layout_marginBottom="33dp"
                安卓:text="Download"
                安卓:onClick="onClick"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent" />

            <ImageView
                安卓:id="@+id/fblogo"
                安卓:layout_width="95dp"
                安卓:layout_height="39dp"
                安卓:layout_marginStart="16dp"
                安卓:layout_marginLeft="16dp"
                安卓:layout_marginTop="13dp"
                安卓:layout_marginEnd="18dp"
                安卓:layout_marginRight="18dp"
                安卓:layout_marginBottom="13dp"
                安卓:contentDescription="TODO"
                安卓:src="@drawable/fb"
                app:layout_constraintBottom_toTopOf="@+id/editUrl"
                app:layout_constraintEnd_toStartOf="@+id/textView"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                安卓:id="@+id/textView"
                安卓:layout_width="0dp"
                安卓:layout_height="0dp"
                安卓:layout_marginTop="16dp"
                安卓:layout_marginEnd="75dp"
                安卓:layout_marginRight="75dp"
                安卓:layout_marginBottom="84dp"
                安卓:text="Paste FB video link to download"
                安卓:textStyle="bold"
                app:layout_constraintBottom_toTopOf="@+id/button_download"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/fblogo"
                app:layout_constraintTop_toTopOf="parent" />

        </安卓x.constraintlayout.widget.ConstraintLayout>
    </com.google.安卓.material.card.MaterialCardView>

在我的活动java代码中有此按钮单击代码

protected void onCreate(@Nullable  Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_download);
        
        inputURl = findViewById(R.id.editUrl);
        editUrlinsta = findViewById(R.id.editUrli);

        BtnDownload = (Button) findViewById(R.id.button_download);
        downloadinsta = (Button) findViewById(R.id.button_insta);

        BtnDownload.setOnClickListener(this);
        downloadinsta.setOnClickListener(this);

    }
    @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.button_download:
                    try{
                       
                        final FacebookDownloader downloaders = new FacebookDownloader(Download.this,inputURl.getText().toString());
                        downloaders.DownloadVideo();
                        inputURl.getText().clear();
                    } catch(Exception e) {}
                    break;
                case R.id.button_insta:
                        final InstaDownloader downloaderInsta = new InstaDownloader(Download.this,editUrlinsta.getText().toString());
                        downloaderInsta.DownloadVideo();
                        editUrlinsta.getText().clear();
                    break;
                default:
                    break;
    
            }
        }

问题是我命名的第一个按钮button_download按预期工作。但是第二个按钮button_insta没有按预期工作。我想做的是,当其中一个按钮点击时,从EditText获取数据。{}运行良好。{}运行不正常。 当按钮单击时,我无法从editUrli获取值。但同样的代码适用于button_downloadeditUrl


共 (1) 个答案

  1. # 1 楼答案

    尝试将这些按钮单击功能分开,如下所示:

    BtnDownload.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try{
                        final FacebookDownloader downloaders = new FacebookDownloader(Download.this,inputURl.getText().toString());
                        downloaders.DownloadVideo();
                        inputURl.getText().clear();
                    } catch(Exception e) {}
                }
            });
    
    downloadinsta.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final InstaDownloader downloaderInsta = new InstaDownloader(Download.this,editUrlinsta.getText().toString());
                        downloaderInsta.DownloadVideo();
                        editUrlinsta.getText().clear();
                }
            });