Java 如何在两个活动之间传输数据
我有一个arraylist,每个索引也有一个arraylist。每个索引都列在listview中。如何在两个活动之间传递数据?我尝试了这些代码,但当我点击listview时,它崩溃了 论我的维持力Java 如何在两个活动之间传输数据,java,android,Java,Android,我有一个arraylist,每个索引也有一个arraylist。每个索引都列在listview中。如何在两个活动之间传递数据?我尝试了这些代码,但当我点击listview时,它崩溃了 论我的维持力 FuelView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View vie
FuelView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intents = new Intent(MainActivity.this, EditEntry.class);
String i = String.valueOf(position);
intents.putExtra(KEY, i);
startActivity(intents);`
}
}
关于findEntry函数
Entrylist Entrylist = Entrylists.get(index);
EditText new_date = (EditText) findViewById(R.id.date);
new_date.setText(Entrylist.getDate().toString());
EditText new_station = (EditText) findViewById(R.id.station);
new_station.setText(Entrylist.getStation().toString());
EditText new_odometer= (EditText) findViewById(R.id.odometer);
new_odometer.setText(Entrylist.getOdometer().toString());
EditText new_grade = (EditText) findViewById(R.id.fuel_grade);
new_grade.setText(Entrylist.getGrade().toString());
EditText new_amount = (EditText) findViewById(R.id.fuel_amount);
new_amount.setText(Entrylist.getAmount().toString());
EditText new_cost = (EditText) findViewById(R.id.unit_cost);
new_cost.setText(Entrylist.getCost().toString());
Button save = (Button) findViewById(R.id.button2);
save.setText("Save");
这里是错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.larin.aolin1_fueltrack/com.example.larin.aolin1_fueltrack.EditEntry}: java.lang.NumberFormatException: Invalid int: "null"
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NumberFormatException: Invalid int: "null"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:355)
at java.lang.Integer.parseInt(Integer.java:332)
at java.lang.Integer.valueOf(Integer.java:490)
at com.example.larin.aolin1_fueltrack.EditEntry.onCreate(EditEntry.java:41)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
您是否尝试使用解析索引
final int index = Integer.parseInt(intents.getStringExtra(MainActivity.KEY));
此外,您还可以通过intent发送int值:
intent.putExtra(KEY, position); // put int value to intent
getIntent.getIntExtra(KEY, -1); // get int value where -1 is the default value
请发布您的logcat错误跟踪。非常奇怪。。。那么getIntent()和getExtras()呢?这是空的吗?或者getIntent().getExtras().getString(MainActivity.KEY)?我应该把它们放在secondActivity的MainActivity中吗?如果我对这两个链接进行注释,我就能够访问secondActivity//final int index=Integer.valueOf(intents.getStringExtra(MainActivity.KEY));金融机构(指数)//这里的问题是“getStringExtra(MainActivity.KEY)”,因为您得到的是“null”值而不是有效字符串(例如:“2”)。主要原因有二:一,。第一个活动中的键与第二个活动中的键2不同。类型不同(例如:在第一个活动中将int值添加到intent,然后在第二个活动中尝试获取字符串值)。在你的情况下,我真的不知道问题出在哪里。我刚刚测试了你的代码,它对我有效。
intent.putExtra(KEY, position); // put int value to intent
getIntent.getIntExtra(KEY, -1); // get int value where -1 is the default value