当我点击按钮显示错误消息时:遗憾的是,学习已停止 什么是错误
按钮代码:
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并再次添加但是同样的东西
答案 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");