gpt4 book ai didi

java - 单击按钮时 TextView 不会更新

转载 作者:行者123 更新时间:2023-11-29 06:33:52 25 4
gpt4 key购买 nike

这是我的第一次尝试,可能看起来很幼稚。我有如下的 activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.buch.pranav.andy.hisabkitab.MainActivity" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:onClick="clickHandler"
android:text="@string/connect" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:text="@string/testVal2"
android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

我的 MainActivity.java 看起来像这样:

public class MainActivity extends ActionBarActivity {

//Auto generated code here

public void clickHandler(View view){
View header = (View)getLayoutInflater().inflate(R.layout.activity_main, null);
TextView tv = (TextView) header.findViewById(R.id.textView2);
System.out.println("tv = "+tv.getText());
tv.setText("lol");
}

//Auto generated code here
}

现在,当我单击该按钮时,我在 logcat 窗口中看到了系统输出,因此 clickHandler 的绑定(bind)没有问题,但我的应用程序屏幕上的 TextView 不会更新! Logcat 甚至没有显示任何异常被抛出。

我在这里错过了什么?

最佳答案

据我所知,您使用了错误的布局,因为您是在点击 handle 内对其进行膨胀,而不是使用您应该在“onCreate”或“onCreateView”中膨胀的布局。

在 onCreate 中初始化您的 View ,保留对 TextView 的引用并仅根据引用修改此 TextView。

您目前所做的是:创建 View - 修改它 - 删除它(它永远不会附加到您的窗口)

改为做这样的事情:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final TextView textView2 = (TextView) findViewById(R.id.textView2);
final Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
textView2.setText("lol");
}

});
}

关于java - 单击按钮时 TextView 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25397380/

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