java - 不幸的是(我的应用程序)已停止工作

标签 java android

好吧,这发生在我创建一个简单的 ImageButton 时。但我不明白我做错了什么......这是我的代码:

(我的 Activity.Xml 文件):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/tapbgh"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:gravity="center"
        android:text="@string/level01"
        android:textColor="#FFFFFF" />
    <TextView
        android:id="@+id/Score"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:gravity="center"
        android:text="@string/click0"
        android:textColor="#FFFFFF"
        android:textSize="16pt" />
    <Chronometer
        android:id="@+id/Timer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:gravity="center_horizontal"
        android:text="01:00"
        android:textColor="#FFFFFF" />

    <Button
        android:id="@+id/Tap"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.81"
        android:background="@drawable/buttonbg" />
    <Button
        android:id="@+id/Menu"
        android:layout_width="270dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Menu" />

    <ImageButton
        android:id="@+id/Reset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/resetbtn"
        android:src="@drawable/resetbtn" />
</LinearLayout>

(我的 .Java 文件):

package my.first.app;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.Button;
//Click Events Below This Line
public class Tap_Game_Activity extends Activity {
    private Button tapBtn;
    private Button rstBtn;
    int scr = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button Menu = (Button) findViewById(R.id.Menu);
        registerForContextMenu(Menu);
        tapBtn = (Button) findViewById(R.id.Tap);
        rstBtn = (Button) findViewById(R.id.Reset);
        rstBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                TextView Score = (TextView) findViewById(R.id.Score);
                Score.setText("0");
                scr = 0;
            }
        });
        tapBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                scr = scr + 1;
                TextView Score = (TextView) findViewById(R.id.Score);
                Score.setText(String.valueOf(scr));
            }
        });
    }

// Options Menu

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, view, menuInfo);

        menu.setHeaderTitle("Menu");
        menu.add(0, view.getId(), 0, "Resume");
        menu.add(0, view.getId(), 0, "Quit");
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        if(item.getTitle()=="Invoke Context Function 1") {
            contextFunction1(item.getItemId());
        }
        else if(item.getTitle()=="Invoke Context Function 2") {
            contextFunction2(item.getItemId());
        }
        else {
            return false;
        }
        return true;
    }

    public void contextFunction1(int id){
        Toast.makeText(this, "function 1 invoked!", Toast.LENGTH_SHORT).show();
    }

    public void contextFunction2(int id){

            new AlertDialog.Builder(this)
                   .setMessage("Are you sure you want to exit?")
                   .setCancelable(false)
                   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int id) {
                            Tap_Game_Activity.this.finish();
                       }
                   })
                   .setNegativeButton("No", null)
                   .show();
        }

 }

我觉得可能是这一行:

rstBtn = (Button) findViewById(R.id.Reset);

但我还是不明白,任何帮助都会很好,谢谢。

最佳答案

API tells me ,我们无法将 ImageButton 转换为 Button。尝试将 rstBtn 声明为 ImageButton 并调整强制转换。

关于java - 不幸的是(我的应用程序)已停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918105/

相关文章:

android - java.lang.NullPointerException : Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource (int)' on a null object reference 异常

android - 如何在android中将处理程序用作计时器?

java - 如何使用复合键从 Hibernate 中删除

javax.xml.crypto.URIReferenceException : Cannot resolve element with ID SAML-

java - log4j2 修改堆栈跟踪格式

android - 如何使用嵌套的 ViewFlipper 正确地扩充布局?

android - PreferenceFragmentCompat 无法识别首选项更改

android - 如何通过 PyFCM 发送只有数据有效负载的 FCM 消息?

java - 在 Runtime exec 上执行多次执行

java - 在使用 Hibernate 4 时, `org.hibernate.cache.EhCacheProvider` 需要什么依赖项?