按钮单击“事件”以在Android Studio中更新TextView。构建没有错误,但不起作用

问题描述 投票:1回答:2

已解决:问题在于java没有运行,而不是代码本身。修正了这个按钮的工作原理。

当我在模拟器中按下它时,我的按钮(似乎)没有。我按下按钮时尝试更新文本。我开始阅读Android Dev Button Guide,以及其他已回答的问题,但即使直接复制粘贴代码从众多问题中选出正确答案,并使用我的项目名称更新,我仍然无法使其正常工作。

这是当前的java代码:

public class PlusMinus extends Activity {

TextView mcvalue;
Button sub;

@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fullscreen);
    mcvalue= (TextView) findViewById(R.id.mcvalue);
    sub= (Button) findViewById(R.id.bSub5MC);

    sub.setOnClickListener(new View.OnClickListener() {

        public void onClick(View paramView) {
            mcvalue.setText("Click");
        }
    });

}}

这是我想要更新的文本和按钮的相应.xml。有更多.xml环绕它与我使用的表格布局有关,但我不认为这是相关的(如果它是我可以添加整个事情)。

 <Button
            android:id="@+id/bSub5MC"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:keepScreenOn="false"
            android:text="@string/subtract_five"
            android:textSize="20sp" />

<TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="#FFD700"
            android:layout_gravity="center_vertical|center_horizontal"
            android:id="@+id/mcvalue"
            android:text="@string/megacredits_name"
            android:textColor="#000000"
            android:textSize="20sp" />   

我想用“Click”替换显示为“MC”的@ string / megacredits_name文本。最终我的计划是用它做一些加/减,但是在扩展它之前先试着弄清楚最简单的构建块。

谢谢

编辑:删除LogCat,因为它没有帮助。

java android android-button
2个回答
1
投票

将android:layout_width =“0dp”更改为TextView和Button的android:layout_width =“wrap_content”。然后ID到TextView,即android:id =“@ + id / mcvalue”

<TextView
        android:id="@+id/mcvalue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FFD700"
        android:layout_gravity="center_vertical|center_horizontal"
        android:text="@string/megacredits_name"
        android:textColor="#000000"
        android:textSize="20sp" />  

1
投票

在布局文件中放置layout_weight:

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
<Button
    android:id="@+id/bSub5MC"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|center_horizontal"
    android:keepScreenOn="false"
    android:text="click"
    android:textSize="20sp" />

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:background="#FFD700"
    android:id="@+id/mcvalue"
    android:layout_weight="1"
    android:layout_gravity="center_vertical|center_horizontal"
    android:text="name"
    android:textColor="#000000"
    android:textSize="20sp" />

</LinearLayout>

并在java文件中:

  TextView mcvalue;
    Button sub;

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

        mcvalue= (TextView) findViewById(R.id.mcvalue);
        sub= (Button) findViewById(R.id.bSub5MC);

        sub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mcvalue.setText("click");
            }
        });
}
© www.soinside.com 2019 - 2024. All rights reserved.