单击按钮后更新 EditText

发布于 2024-11-01 08:49:51 字数 1484 浏览 1 评论 0原文

此 EditText 位于 Activity 内,该 Activity 是主 Activity 内 TabHost 的一部分。它应该是 4 个选项卡,每个选项卡上有一个 EditText 和两个按钮,一个用于递增 EditText 字段,一个用于递减 EditText 字段。但是,如果我尝试在其中一个 EditText 框上 setText() ,应用程序就会崩溃。因此,当我在 onCreate() 中调用 setText() 时,它会崩溃。任何帮助将不胜感激!

<EditText
    android:label="@+id/LifeForP1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoText="true"
    android:cursorVisible="false"
    android:background="@null"
    android:textColor="#999999"
    android:color="@null"
    android:layout_x="90px"
    android:layout_y="0px"
    android:textSize="250px"
    android:maxLength="3"
    android:capitalize="sentences"
    android:layout_weight="1"
    android:freezesText="true"
    android:text="20"
/>

public class ActivityTab1 extends Activity {

private EditText lifeView;
int p1Life = 20;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content1layout);

    lifeView = (EditText) findViewById(R.id.LifeForP1);
    lifeView.setText(getString(R.string.lifeStart)); //Error here
}

@Override
protected void onResume() {
    super.onResume();
}

public void p1GainLifeListener(View view) {
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("test gain 1");
    alertDialog.show();
    //String show = String.format("", Integer.toString(++p1Life));
    //lifeView.setText(show);
}

This EditText is inside an Activity that is part of a TabHost within the main Activity. It's just supposed to be 4 tabs with an EditText and two Buttons on each, one to increment and one to decrement the EditText field. However, if I ever try to setText() on one of the EditText boxes, the app crashes. So when I call setText() in onCreate() it crashes. Any help would be greatly appreciated!

<EditText
    android:label="@+id/LifeForP1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoText="true"
    android:cursorVisible="false"
    android:background="@null"
    android:textColor="#999999"
    android:color="@null"
    android:layout_x="90px"
    android:layout_y="0px"
    android:textSize="250px"
    android:maxLength="3"
    android:capitalize="sentences"
    android:layout_weight="1"
    android:freezesText="true"
    android:text="20"
/>

public class ActivityTab1 extends Activity {

private EditText lifeView;
int p1Life = 20;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content1layout);

    lifeView = (EditText) findViewById(R.id.LifeForP1);
    lifeView.setText(getString(R.string.lifeStart)); //Error here
}

@Override
protected void onResume() {
    super.onResume();
}

public void p1GainLifeListener(View view) {
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("test gain 1");
    alertDialog.show();
    //String show = String.format("", Integer.toString(++p1Life));
    //lifeView.setText(show);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

漫漫岁月 2024-11-08 08:49:51

在您的 xml 中,更改

android:label="@+id/LifeForP1"

to

android:id="@+id/LifeForP1"

In your xml, change

android:label="@+id/LifeForP1"

to

android:id="@+id/LifeForP1"

少女情怀诗 2024-11-08 08:49:51

当您在引用的代码中绑定 EditBox 时,

findViewById(R.id.LifeForP1);

这意味着 EditBox 需要一个 ID。

如果您将 android:label 更改为 android:id 您的代码将正常运行

When you bind your EditBox in code you reference to

findViewById(R.id.LifeForP1);

This means the EditBox needs an ID.

If you change the android:label to an android:id your code will run fine

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文