按钮文字保持重置

时间:2014-04-19 18:42:03

标签: java android button textview

我在10X10网格中有100个按钮。 他们都称同样的方法“去”。

问题是,当我按下任何按钮时,它的文本会按预期发生变化, 但是当我在此之后按下其他按钮时,初始按钮的文本将被重置。

以下是来自activity_main.xml的按钮代码:

<Button 
    android:onClick="go"
    android:id="@+id/r1b1"
    android:layout_width="0dp"
    android:layout_height="30dp"
    android:layout_weight="1"
    android:text="@string/button"
    android:textSize="12dp"/>

这是我的main_activity.java:

package com.example.battleships;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    public char[][] a=new char[3][3];

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

    public void go(View view)
    {
        setContentView(R.layout.activity_main);
        Button r1b1 = (Button)findViewById(view.getId());
        TextView op1 = (TextView)findViewById(view.getId());
        op1.setText("X");
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

3 个答案:

答案 0 :(得分:1)

go例程写得不好。
你重新设置主窗口(为什么?) 您将视图重新分配给TextView(为什么?) 然后设置TextView的文本(为什么?)。

我会在第1行和第3行注释掉并从

更改第4行
op1.setText("X");

r1b1.setText("X");

答案 1 :(得分:1)

setContentView(R.layout.activity_main)方法移除go(View v)

答案 2 :(得分:0)

您的100个按钮不能都具有相同的ID。 Android会允许它(虽然给你一个警告),但这是糟糕的设计。您应该做的是以编程方式向视图添加按钮,为您创建的每个按钮创建唯一ID,并在创建时设置onClickListeners。