android - Android Studio按下按钮以显示列表中的单词
问题描述
我正在尝试制作一个应用程序,您可以在其中按下按钮并从列表中选择随机单词并显示它;这是我的代码,但它不会工作。(我是新手)有人可以看看我在这里做错了什么。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
import android.view.View;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
TextView tv1;
Button b1;
private String jokes[] = {"text1","text2","text3","text4"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.tv1);
b1 = (Button) findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Random random=new Random();
int num = random.nextInt(jokes.length);
tv1.setText(jokes[num]); }
}
解决方案
您的 Java 代码将如下所示:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private String jokes[] = {"text1","text2","text3","text4"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView joke = (TextView) findViewById(R.id.textViewJoke);
Button sort = (Button) findViewById(R.id.buttonSort);
sort.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random random = new Random();
int value = Math.abs(random.nextInt() % jokes.length);
joke.setText(jokes[value]);
}
});
}
}
你的 xml 代码将是这样的:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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=".MainActivity">
<TextView
android:id="@+id/textViewJoke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:id="@+id/buttonSort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewJoke"/>
</android.support.constraint.ConstraintLayout>
对于你打算做什么。
推荐阅读
- r - 无法在 R 中训练随机森林模型
- c - Fortran 风格在 C 中隐含做循环?
- django - DRF + Vue 中的权限
- ios - 如何访问存储在 watchOS 应用程序容器中的日志文件?
- python - 如何通过在旁边添加另一个来自动增加 django 管理表单中的模型字段?
- sql - Oracle:将列转置为行
- node.js - 服务器重启后无法替换过期作业
- haskell - 是否可以切换 XMonad.Hooks.EwmhDesktops.fullscreenEventHook?
- java - 在 Android 中使用 Tesseract 创建可搜索的 pdf
- mongodb - 寻找在 Mongodb 查询中优先考虑某些文档的正确方法