java - Android Studio 我的第二个 Activity 按钮不起作用
问题描述
我认为这是一个非常简单的问题。我是 Android Studio 的新手,我找不到答案。
我有一个活动,每个按钮切换到另一个活动。但是,在我的第二个活动中,我的简单按钮只是为了更改不起作用的 Textview。
布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StartActivity">
<TextView
android:id="@+id/twText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="127dp"
android:layout_marginLeft="127dp"
android:layout_marginTop="88dp"
android:layout_marginEnd="127dp"
android:layout_marginRight="127dp"
android:layout_marginBottom="624dp"
android:text="Ihr Passwort war Richtig!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btnChecke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="134dp"
android:layout_marginLeft="134dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="189dp"
android:layout_marginRight="189dp"
android:layout_marginBottom="371dp"
android:text="Check"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
onCreate
我的第二个活动中的方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
tw = findViewById(R.id.twText);
btnCheck = findViewById(R.id.btnChecke);
btnCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tw.setText("work");
}
});
}
这就是我开始第二个活动的onCreate
方式(我第一个活动的方法)。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
tw = findViewById(R.id.twText);
Button btnCheck = findViewById(R.id.btnChecke);
btnCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView("Work"R.layout.activity_main);
}
});
}
我检查了布局中的变量名,看起来一切都很好。
先感谢您。
解决方案
这个答案基于我在 OP 的最新编辑之前发现的问题。这是我发现问题的编辑版本。
首先,onClickListener
您的按钮有一些非常错误的地方。您正在再次设置内容视图,而不是开始您的第二个活动。看起来,您只是在设置您的内容视图StartActivity
,实际上并没有启动MainActivity
您尝试启动的内容。
为了开始一个新的活动,您需要在您的按钮中添加以下内容onClickListener
。
btnCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// setContentView(R.layout.activity_main); // This is not the way for starting another activity
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
});
一旦MainActivity
开始,您应该可以毫无问题地更改文本。
推荐阅读
- javascript - AFrame:有没有办法用不同的组件重新加载场景?
- sql - 如何从多个表中按计数分组
- javascript - 如何使用代理捕获对象创建?
- angular - Angular 在 i18n 中翻译 ngx 中的数字
- angular - Angular 9 Reactive Forms:使用 trackBy 时复选框未更新
- swift - 为什么我的视图右上角有一个“加号”图标?
- java - 双地图
被反序列化为 BiMap 通过 Gson - javascript - 检查数组javascript中的值
- c++ - 与 BLAS 和 LAPACK Eclipse IDE 链接的犰狳交叉编译错误
- javascript - “输入”类型上不存在属性“模糊”