点击按钮时更改TextView文本(Android)

10

我试图在按钮点击时更改TextView的文本。以下是我代码的要点,但似乎没有起作用。我做错了什么吗?谢谢提前。

//xml
<TextView android:id="@+id/textView2" android:text="blah blah blah"></TextView>
<Button android:text="Wrong answer." android:onClick="wrongAns" android:clickable="true"></Button>

//code
TextView theCorrectAnsTextView = (TextView)findViewById(R.id.textView2);

public void wrongAns(View v) 
{   
  theCorrectAnsTextView.setText("TextView text has changed!");
}

点击按钮时会发生什么? - Aleks G
wrongAns(View v)函数从哪里调用?请提供更多详细信息。 - Shafi
在公共类应用程序名称扩展活动之外。 - drdrdr
代码看起来没问题,你能发一下崩溃日志吗? - Yashwanth Kumar
可能是重复的问题:如何通过按下按钮更改TextView的文本 - Ciro Santilli OurBigBook.com
显示剩余3条评论
5个回答

23
  1. 首先你需要为按钮添加 onclick 事件,比如 (buttonClick)。
  2. 在 Java 文件中只需编写以下代码。

  3. public void buttonClick(View v)
    {
    TextView tv = (TextView)findViewById(R.id.textView1);
    tv.setText("Welcome to android");
    }
    

希望这能对你有所帮助。


1

也许您需要初始化按钮。 如果它仍然无法工作,只需在Java代码中执行:

Button btn = (Button) findViewById(YourId);
btn.setonClickListener(listener);

public onClickListener listener = new View.OnclickListener{
      onclick(View v){
      // do your thing
      }
}

像那样,没有Eclipse纠正我,我记不清了。


0
请使用setContentView,详见setContentView(R.layout.main)是什么?
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mStatusTextView = (TextView) this.findViewById(R.id.status_text_view);
}

请编辑您的答案并添加一些解释,因为仅有代码的答案是不被鼓励的,有时可能会被删除。 - WebDevBooster

0
在Kotlin中,要将OnClickListener添加到Button以更改TextView的Text(value),您必须在MainActivity的onCreate方法中编写以下代码。
    var textView = findViewById<TextView>(R.id.text)        
    var button = findViewById<Button>(R.id.button)
    button.setOnClickListener(View.OnClickListener {
        textView.setText("Imran Khan")
    })

0
在一个简单的视图中,背景有一个文本框和一个按钮,你需要使用它们。
public void OnMyButtonClick (View v)
{
    TextView tv = (TextView) v.getRootView().findViewById(R.id.textVal);
    if (tv != null)
      {tv.setText("Hallo");}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接