单击按钮在android中显示错误消息

时间:2013-06-30 08:26:24

标签: android

当我点击按钮显示错误消息时:遗憾的是,学习已停止 什么是错误

按钮代码:

Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i1 = new Intent(v.getContext(),Letters.class); 
i1.putExtra("Ar", "a5");
startActivity(i1);
}

});

这是letters.java代码:

什么是错误以及如何解决它。

package com.example.learn;

import com.example.learn.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;
    public class Letters extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_letters);
            ImageView image = new ImageView(this);
            RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativelayout1);
            RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
            lp.addRule(RelativeLayout.BELOW);
            lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            Bundle extras = getIntent().getExtras();
            String Ar_let=extras.getString("Ar");
            Toast.makeText(this, Ar_let, Toast.LENGTH_LONG).show();
            if(Ar_let=="a1")
            {
                image = (ImageView) findViewById(R.id.imageView1);
                image.setImageResource(R.drawable.ar_a);
                rl.addView(image, lp);
            }
            else if(Ar_let=="a2")
            {
                image = (ImageView) findViewById(R.id.imageView2);
                image.setImageResource(R.drawable.ar_b);
                rl.addView(image, lp);
            }
            else if(Ar_let=="a3")
            {
                image = (ImageView) findViewById(R.id.imageView3);
                image.setImageResource(R.drawable.ar_c);
                rl.addView(image, lp);
            }
            else if(Ar_let=="a4")
            {
                image = (ImageView) findViewById(R.id.imageView4);
                image.setImageResource(R.drawable.ar4);
                rl.addView(image, lp);
            }
            else if(Ar_let=="a5")
            {
                image = (ImageView) findViewById(R.id.imageView5);
                image.setImageResource(R.drawable.ar5);
                rl.addView(image, lp);
            }
            else
            {
                image = (ImageView) findViewById(R.id.imageView5);
                image.setImageResource(R.drawable.ar5);
                rl.addView(image, lp);
            }
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.letters, menu);
            return true;
        }

    }

什么是错误请!! !!

我删除Letters.java并再次添加但是同样的东西

3 个答案:

答案 0 :(得分:1)

我不知道导致错误的原因,但我遇到了同样的问题。如果我是你,我会尝试这个,因为它对我有用。

将以下行添加到按钮的xml代码中:

 android:onClick="startNewActivity"

然后你的按钮的xml应该看起来像这样:

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Your Text" 
    android:onClick="startNewActivity" />

使用Java代码:

public void startNewActivity(View view) {
    Intent intent = new Intent(this, Letters.class);
    startActivity(intent);
}

您必须将以下行添加到导入部分:

import android.view.View;
android.content.Intent;

编辑:哦,我不确定你是否需要这样做,但我会在Letter.Class onCreate()方法中添加这一行。做一个习惯当然是好事,因为在以后的项目中你可能想要向第二个活动发送信息。所以,将这一行添加到Letters.class:

Intent intent = getIntent();

答案 1 :(得分:0)

这很可能是因为您正在使用v.getContext();
你为什么不尝试这样的事情:

Intent intent = new Intent(myFirstClass.this,MySecondClass.class);
startActivity(intent);

答案 2 :(得分:0)

没有看到LogCat,但是在你的接收活动中你正试图接收你没有传入的Bundle。你只传入了一个String,所以使用Intent.getStringExta()而不是Bundle

String received = getIntent().getStringExtra("Ar");