gpt4 book ai didi

java - onClickListener 用于根据编辑文本更改按钮文本

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:02 24 4
gpt4 key购买 nike

我有以下代码,但它将按钮文本更改为空。我基本上试图在单击按钮时更改按钮的文本,以更改用户在我的编辑文本字段中输入的内容。一切似乎都正常,但是,当我单击任一按钮时,按钮的文本更改为空/空,并且由于我使用换行内容,它也会缩小按钮的大小。

activity_main.xml

    <LinearLayout
android:layout_width="368dp"
android:layout_height="495dp"
android:orientation="vertical"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0000ff"
android:gravity="center"
android:padding="10dp"
android:text="Name: Balkar Rana"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:textColor="#FFFF00"
android:textSize="20dp"
android:textStyle="bold"
/>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:textColor="#FF69B4"
android:text="Username: "
android:textSize="20dp"/>

<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:gravity="left"
android:textColor="#000000"
android:textSize="20dp"
android:id="@+id/username"/>

</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:orientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:textColor="#63ea1f"
android:text="Password: "
android:textSize="20dp"/>

<EditText
android:inputType="textPassword"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:gravity="left"
android:textColor="#000000"
android:textSize="20dp"
android:id="@+id/password"/>


</LinearLayout>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="25dp">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="Username"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="#FF69B4"
android:id="@+id/userButton"
android:onClick="onClick"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:text="Password"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="#63ea1f"
android:id="@+id/passButton"
android:onClick="onClick"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="10dp"
android:text="USER-PASS"
android:textSize="20dp"
android:textStyle="bold"
android:textColor="#FF69B4"
android:id="@+id/userPassButton"
android:onClick="onClick"/>

</LinearLayout>


</LinearLayout>

</android.support.constraint.ConstraintLayout>

MainActivity.java

    package com.example.balkarrana.lab2;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

EditText usernameInput = (EditText)findViewById(R.id.username);
final String userText = usernameInput.getText().toString();
final Button userButtonVariable = (Button)findViewById(R.id.userButton);

EditText passwordInput = (EditText)findViewById(R.id.username);
final String passText = passwordInput.getText().toString();
final Button passButtonVariable = (Button)findViewById(R.id.passButton);

final String userPassText = userText + passText;
final Button userPassButtonVariable = (Button)findViewById(R.id.userPassButton);

userButtonVariable.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
userButtonVariable.setText(userText);
}
});

passButtonVariable.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
passButtonVariable.setText(passText);
}
});

userPassButtonVariable.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
userPassButtonVariable.setText(userPassText);
}
});
}

}

最佳答案

当应用程序首次启动时,您将在 onCreate 中获取 EditText 的值,并且它们将为空白。您需要获取 onClick 中的当前值,然后对其进行设置。以下是我为 userButton 执行此操作的方法。

...
public class MainActivity extends AppCompatActivity{

EditText usernameInput;
Button userButtonVariable;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

usernameInput = (EditText)findViewById(R.id.username);
userButtonVariable = (Button)findViewById(R.id.userButton);

userButtonVariable.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String userText = usernameInput.getText().toString();
userButtonVariable.setText(userText);
}
});

要阻止按钮改变大小,请勿将宽度设置为wrap_content。

尝试 match_parent,然后使用边距。

<Button
android:layout_width="match_parent"
...
</Button>

关于java - onClickListener 用于根据编辑文本更改按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com