您好,我是这个网站的新手,也是Android编程的新手......
每次我点击按钮进入下一个活动时,我都会收到一个力量。我知道这项活动是有效的,因为我评论了这些包...任何人都知道我做错了什么?
// click button on 1st activity
Intent iCreate = new
Intent("silver.asw.charactersheet.CREATECHARACTER");
iCreate.putExtra("cname",item);
startActivity(iCreate);
// on item select
item = spin.getItemAtPosition(position).toString();
// spinner is being populated by sql database
// 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
Bundle b = this.getIntent().getExtras();
String item = b.getString("cname");
character.setText(item);
}
此外,我没有任何警告或无法检查我的logcat,因为我正在使用AIDE这是一个Android应用程序ide。 (在我离开家之前,我已经在我的计算机上测试了这个代码,同样的问题。)
答案 0 :(得分:0)
你没有意图使用任何捆绑,而是尝试在第二次活动中接收。使用这种方式:
// 1nd activity
item = spin.getItemAtPosition(position).toString();
Bundle bundle = new Bundle();
bundle.putString("cname", item);
iCreate.putExtras(bundle);
// 2nd activity
Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("cname");
答案 1 :(得分:0)
我不确定你的onClick功能在哪里,但尝试这样的事情 实施例
初始化按钮
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
//start activity
public void onClick(View v) {
startActivity(new Intent(Main.this, StartPage.class));
}}
答案 2 :(得分:0)
Bundle b = this.getIntent().getExtras();
在第一个活动
中用以下内容替换上面的行Bundle bundle = new Bundle();
Bundle b = getIntent().getExtras();//from 2 activity you can call as it no need to have this
答案 3 :(得分:0)
在第二项活动中,使用
String item = getIntent().getStringExtra("cname");
而不是
Bundle b = this.getIntent().getExtras();
// b is null, because you use intent.putExtra(string, string). you should
// use above method to get the data.
String item = b.getString("cname");
将导致NULLPointerException。
答案 4 :(得分:0)
如果您使用此代码
Intent iCreate = new Intent("silver.asw.charactersheet.CREATECHARACTER");
iCreate.putExtra("cname",item);
startActivity(iCreate);
在你的第二项活动中,你可以这样使用。
// 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
String item = getIntent().getExtras()..getString("cname");
character.setText(item);
}
或者你可以像这样使用其他方式,
Intent iCreate = new Intent("silver.asw.charactersheet.CREATECHARACTER");
Bundle b=new Bundle();
b.putString("cname", item);
iCreate.putExtras(bundle);
startActivity(iCreate);
在你的第二个活动中
/ 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
Bundle b = getIntent().getExtras();
String item = b.getString("cname");
character.setText(item);
}