- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我想创建一个Rock Paper Scissors应用程序,该应用程序应如下所示:
在第一个屏幕中,输入2个播放器的名称。
在第二个屏幕中,有玩家的名称和附近每个玩家的得分。进度是您需要单击一个按钮,单击该按钮后,在每个玩家的侧面,随机图像(石头或剪刀)将会出现,获胜者将获得一个积分,或者如果平局,没人会获得。
注意:根据我尝试搜索调试时收到的消息时所看到的内容,这可能不是代码中的错误,因此您可能首先要看一下。
我希望对代码有一些评论。
在开始使用按钮之前,我检查了从第一个 Activity 传递到第二个 Activity 的名称,然后该应用程序运行正常。
但是,当我为OnClickListener编写代码后,在我运行它的第一个 Activity 之后,该应用程序立即崩溃。这是我第一次使用这样的图像,所以我不确定是否正确使用它。我已经创建了一些函数,因此代码将更易读,而无需确切地知道我在做什么,因为我是android的新手。
第一次 Activity :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button startBtn;
startBtn = findViewById(R.id.startBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText p2Name=findViewById(R.id.p2EditText);
EditText p1Name=findViewById(R.id.p1EditText);
String name1=p2Name.getText().toString();
String name2=p1Name.getText().toString();
Intent intent1 = new Intent(MainActivity.this, Game.class);
intent1.putExtra("name1",name1);
intent1.putExtra("name2",name2);
MainActivity.this.startActivity(intent1);
}
});
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
String p1Name;
String p2Name;
if (getIntent().hasExtra("name1")) {
p1Name = getIntent().getStringExtra("name1");
TextView p1NView = findViewById(R.id.p1);
p1NView.setText(p1Name);
}
if (getIntent().hasExtra("name2")) {
p2Name = getIntent().getStringExtra("name2");
TextView p2NView = findViewById(R.id.p2);
p2NView.setText(p2Name);
}
Button NRound=findViewById(R.id.newRoundBtn);
NRound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView score1=findViewById(R.id.score1View);
TextView score2=findViewById(R.id.score2View);
int p1Score = Integer.parseInt(score1.getText().toString());
int p2Score = Integer.parseInt(score2.getText().toString());
String[] RPS = new String[]{"rock", "paper", "scissors"};
Random r = new Random();
String p1Hand;
String p2Hand;
p1Hand = RPS[r.nextInt(3)];
p2Hand = RPS[r.nextInt(3)];
showImages(p1Hand,p2Hand);
String result=findWinner(p1Hand,p2Hand);
switch (result){
case "player1":
p1Score++;
score1.setText(String.valueOf(p1Score));
case "player2":
p2Score++;
score2.setText(String.valueOf(p2Score));
if(score1.getText().equals('3') || score2.getText().equals('3')){
Intent end=new Intent(Game.this,EndScreen.class);
Game.this.startActivity(end);
}
}
}
});
update();
}
public static String findWinner(String hand1,String hand2){
if(hand1.equals(hand2)){
return "draw";
}
String both=hand1.concat(hand2);
if(both.equals("rockscissor") || both.equals("paperrock")||both.equals("scissorspaper")){
return "player1";
}else{
return "player2";
}
}
public void showImages(String hand1,String hand2){
ImageView rock1=findViewById(R.id.rock1);
ImageView paper1=findViewById(R.id.paper1);
ImageView scissors1=findViewById(R.id.scissors1);
ImageView rock2=findViewById(R.id.rock2);
ImageView paper2=findViewById(R.id.paper2);
ImageView scissors2=findViewById(R.id.scissors2);
switch (hand1){
case "rock":
rock1.setVisibility(View.VISIBLE);
case "paper":
paper1.setVisibility(View.VISIBLE);
case "scissors":
scissors1.setVisibility(View.VISIBLE);
}
switch (hand2){
case "rock":
rock2.setVisibility(View.VISIBLE);
case "paper":
paper2.setVisibility(View.VISIBLE);
case "scissors":
scissors2.setVisibility(View.VISIBLE);
}
}
public void update(){
ImageView[] images=new ImageView[6];
for (ImageView image:images)
{
if(image.getVisibility()==View.VISIBLE){
image.setVisibility(View.GONE);
}
}
}
Process: com.example.rockpaperscissors, PID: 11607
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rockpaperscissors/com.example.rockpaperscissors.Game}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.ImageView.getVisibility()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.ImageView.getVisibility()' on a null object reference
at com.example.rockpaperscissors.Game.update(Game.java:71)
at com.example.rockpaperscissors.Game.onCreate(Game.java:65)
at android.app.Activity.performCreate(Activity.java:7783)
at android.app.Activity.performCreate(Activity.java:7772)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3235)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
最佳答案
首先尝试清理项目并重建它。
为了帮助我们解决崩溃问题,我们需要查看日志。请同时添加。
关于您的代码:
关于android - 应用程序中的Rock,Paper,Scissors进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57663195/
resizeable_dialog.html :host { display: block; } Open
我有一个带对话框的基本抽屉应用程序。当对话框打开时,工具栏中的阴影(我假设)在框上流血。有解决办法吗? ...
我正在使用 polymer 入门套件。 当我添加 元素,它出现在 后面当我 .show() 有没有其他人遇到过这个问题,您有什么解决办法吗? 最佳答案 我遇到了同样的问题并弄清楚发生了什么。 如果你
我想在 Polymer 元素中使用带有 paper 元素的 Bootstrap 主题。 我是否仍可以使用 paper 元素,但在全局范围内关闭它们的(Material Design)样式? 最佳答案
我有一个绝对定位的元素,它在纸张对话框的外面,(它是一个 body > div)。 我在 div 中有几个输入字段,我希望能够在其中输入一些文本, 但 paper-dialog 并没有让它离开焦点,引
HTML Full customer list CSS:
我正在尝试圆化 paper-listbox 的 Angular ,它包含在 paper-dropdown-menu 中。但是,以下 CSS 并没有像我预期的那样改变边框半径: paper-listbo
我已经安装了webppl-agents库(以及 webppl 和 webppl-dp )并尝试运行命令行测试,但我遇到了一些麻烦。 npm 文件模块 (1) 中的 jsdom 似乎存在依赖性问题(2)
我正在尝试使用 paper.js 优秀的 path.simplify 方法来简化手绘路径,以便在用户完成绘制后生成平滑的曲线。由于这是非 HTML 输出(TV Telestration),我尝试在 N
我有一个元素,我们称它为x-foo .里面x-foo , 我正在使用 . 问题 How do I change the ripple color from (the default) yellow
注意:这个问题是关于旧版本的 polymer 。 Google 工程师致力于对 Polymer 包进行快速突破性更新,再加上当时他们并未进行 dogfooding,这意味着该问题已过时。 绑定(bin
UPD:已解决 我有默认的 Polymer Starter Kit(高级)布局,结构如下所示
如何访问这样写的css(我搜索过但没有知道这篇文章怎么称呼): paper-spinner{ --paper-spinner-layer-1-color: var(--paper-gre
您好: 每当变量更改时,我都有一个从可观察的变量填充的paper-dropdown-menu,我想重新选择第一项。但是,第一次正确运行时,下次它将继续选择与第一次选择相同的第一个元素。这是组件的htm
我得到了一个纸张对话框,可以在AngualrDart组件中使用纸张输入正常工作。当我尝试使用纸质文本区域时,它是只读的。 这是一个工作文件输入和只读文件文本区域: {{ death_year
我有一个简单的组件,其中包含定义如下的雇员列表: @Component(selector: 'employee-list', templateUrl: 'employee_list.html'
我们正在使用Paper.js构建各种图像编辑器。我们在Paper.js画布的一侧有一个队列,可以在图像之间进行切换。每次在图像之间切换时,我们都希望将所有注释平整化(光栅化)到刚编辑的图像上。 每次切
我只是想进入 paper.js。当它们被内联时,代码可以正常工作。但是当我将它们移动到外部文件并在那里 src 时,错误开始弹出:( 谁能弄清楚我做错了什么?附上了错误截图 非常感谢! Error s
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在使用 来显示我将以编程方式构建的 SVG 图像。在开始之前,我需要知道渲染容器的大小。我正在等待打开的属性更改为 true 但这显然为时过早,因为 .clientWidth 在触发时为 0,但稍
我是一名优秀的程序员,十分优秀!