我是Android Studio新手。我正在研究以下代码,但它无法正常工作,请帮助我。
我正在尝试发送一个int值,但模拟器每次都停止工作。
从第1课到第2页。 在第1页:
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(page1.this, page2.class);
Bundle b = new Bundle();
b.putInt("key", 1); //Your id
intent.putExtras(b); //Put your id to your next Intent
startActivity(intent);
}
});
第2页:我在onCreate函数中编写此代码。
Bundle coming = getIntent().getExtras();
int value = coming.getInt("key");
paper.setText(value);
答案 0 :(得分:2)
当您尝试将其设置为int
时,您必须强制 String
TextView
所以改变:
paper.setText(value);
为:
paper.setText(String.valueOf(value));
答案 1 :(得分:0)
您需要为TextView
设置文本值Bundle coming = getIntent().getExtras();
int value = coming.getInt("key");
// Add an empty string to value
paper.setText(value + "");
答案 2 :(得分:0)
在setText之前将int转换为String
paper.setText(String.valueOf(value));
答案 3 :(得分:-1)
有几种方法可以做到,这取决于您的要求。我将展示如何做到这一点,
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), page2.class);
intent.putExtra("key", 1); //Your id
startActivity(intent);
}
});
您可以在第2页的活动中接收数据
int id = getIntent().getIntExtra("key",1);
可以使用bundle来传递数据包
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), page2.class);
//Create the bundle
Bundle bundle = new Bundle();
//Add your data from getFactualResults method to bundle
bundle.putString("key", 1);
//Add the bundle to the intent
intent.putExtras(bundle);
startActivity(intent);
}
});
从第2页活动
接收数据 Bundle bundle = null;
bundle = this.getIntent().getExtras();
String keyString = bundle.getString("Name");//this is for String
SharedPreferences sp =getSharedPreferences(logFile, 0);
SharedPreferences.Editor editor = sp.edit();
editor.putString("id", 1);
editor.commit();
可以从下一页开始审核