gpt4 book ai didi

java - 在此程序中,将 ArrayList 从一个 Activity 传递到另一个 Activity 不起作用

转载 作者:太空狗 更新时间:2023-10-29 14:47:18 25 4
gpt4 key购买 nike

第一个 Activity :

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private Button bt1;
private Button bt2;
private EditText ed1;
private EditText ed2;
private TextView tv3;
static ArrayList<String> s = new ArrayList<>();
static ArrayList<Integer> i = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

bt1 = (Button)findViewById(R.id.button);
ed1 = (EditText) findViewById(R.id.editText);
ed2 = (EditText)findViewById(R.id.editText2);
bt2 = (Button)findViewById(R.id.button2);
tv3 = (TextView)findViewById(R.id.textView3);

bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
s.add(ed1.getText().toString());
i.add(Integer.parseInt(ed2.getText().toString()));
}
});

bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
Intent intent = new Intent(MainActivity.this, second.class);
intent.putExtra("key", s);
startActivity(intent);
}
catch(Exception e) {
tv3.setText(e.getMessage());
}
}
});
}
}

第二个 Activity :

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.widget.TextView;
import java.util.ArrayList;

public class second extends AppCompatActivity {

private TextView tv1;
private TextView tv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);

tv1 = (TextView)findViewById(R.id.textView);
tv2 = (TextView)findViewById(R.id.textView2);

ArrayList<String> s = (ArrayList<String>)getIntent().getSerializableExtra("key");
for(int j=0;j<=s.size();j++) {
tv1.setText(s.get(j));
}
}
}

我不明白这段代码中的问题。当我点击 bt2 将 ArrayList 从一个 Activity 传递到另一个 Activity 时,应用程序就关闭了。我无法理解这段代码中的问题。

请帮帮我,

我还更新了二等舱的 manifest.xml。

最佳答案

你确定吗

i.add(Integer.parseInt(ed2.getText().toString()));

在 onClick() 调用中没有抛出异常?在 Listener.onClick() 中围绕您的代码使用 try-catch block 。

顺便说一句,您可以轻松地将 Lambda Exrpessions 用于 ActionListeners。 https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

关于java - 在此程序中,将 ArrayList 从一个 Activity 传递到另一个 Activity 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38497162/

25 4 0