Java 当我将Arraylist从main.activity传递到receiver.activity时,只获取Arraylist的最后一个值
我有两个班,主要活动和接受者活动。在主活动中,我从edittext填充arraylist,在按钮上单击我想在receiver.class上传递此arraylist,但它只获取arraylist的最后一个值。我的代码是这个主活动Java 当我将Arraylist从main.activity传递到receiver.activity时,只获取Arraylist的最后一个值,java,android,Java,Android,我有两个班,主要活动和接受者活动。在主活动中,我从edittext填充arraylist,在按钮上单击我想在receiver.class上传递此arraylist,但它只获取arraylist的最后一个值。我的代码是这个主活动 public class main extends AppCompatActivity { EditText txt; Button check,save; String ts ="new "; public List<Strin
public class main extends AppCompatActivity {
EditText txt;
Button check,save;
String ts ="new ";
public List<String> name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt= (EditText) findViewById(R.id.editText);
check = (Button) findViewById(R.id.btn_conf);
save = (Button) findViewById(R.id.btn_sve);
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name = new ArrayList<String>();
name.add(txt.getText().toString());
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(main.this, reciever.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)name);
intent.putExtra("BUNDLE",args);
startActivity(intent);
}
});
}
public类主活动{
编辑文本文本;
按钮检查,保存;
字符串ts=“新建”;
公开名单名称;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(EditText)findViewById(R.id.EditText);
检查=(按钮)findViewById(R.id.btn_conf);
保存=(按钮)findviewbyd(R.id.btn_sve);
check.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//tmp.name.add(txt.getText().toString());
name=新的ArrayList();
name.add(txt.getText().toString());
}
});
save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(main.this,receiver.class);
Bundle args=新Bundle();
args.putSerializable(“ARRAYLIST”,(Serializable)名称);
意向。额外(“捆绑”,args);
星触觉(意向);
}
});
}
}
`
还有一个接受者
public class reciever extends AppCompatActivity {
Button rec;
String tmp="";
ArrayList<String> object;
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reciever);
Intent intent = getIntent();
Bundle args = intent.getBundleExtra("BUNDLE");
object = (ArrayList<String>) args.getSerializable("ARRAYLIST");
rec = (Button) findViewById(R.id.btnrec);
rec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (i=0;i<object.size();i++)
{
tmp+=object.get(i);
}
Toast.makeText(getApplicationContext(),tmp, Toast.LENGTH_LONG).show();
}
});
}
公共类接收器扩展AppCompative活动{
按钮rec;
字符串tmp=“”;
ArrayList对象;
int i=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receiver);
Intent=getIntent();
Bundle args=intent.getBundleExtra(“Bundle”);
object=(ArrayList)args.getSerializable(“ArrayList”);
rec=(按钮)findViewById(R.id.btnrec);
rec.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(i=0;i当您在创建新的ArrayList时,只要单击检查按钮,问题就出现在您的ClickListener
中
您需要在之外创建数组列表单击侦听器
,如下面的代码所示
试试这个
name = new ArrayList<String>();
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
name=newarraylist();
check.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
像这样更改代码
public class main extends AppCompatActivity {
EditText txt;
Button check,save;
String ts ="new ";
public List<String> name ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt= (EditText) findViewById(R.id.editText);
check = (Button) findViewById(R.id.btn_conf);
save = (Button) findViewById(R.id.btn_sve);
name = new ArrayList<String>();
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(main.this, reciever.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)name);
intent.putExtra("BUNDLE",args);
startActivity(intent);
}
});
}
}
public类主活动{
编辑文本文本;
按钮检查,保存;
字符串ts=“新建”;
公开名单名称;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(EditText)findViewById(R.id.EditText);
检查=(按钮)findViewById(R.id.btn_conf);
保存=(按钮)findviewbyd(R.id.btn_sve);
name=新的ArrayList();
check.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(main.this,receiver.class);
Bundle args=新Bundle();
args.putSerializable(“ARRAYLIST”,(Serializable)名称);
意向。额外(“捆绑”,args);
星触觉(意向);
}
});
}
}
当您在创建新的阵列列表时,只要单击检查按钮,问题就出现在您的ClickListener
中
您需要在之外创建数组列表单击侦听器
,如下面的代码所示
试试这个
name = new ArrayList<String>();
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
name=newarraylist();
check.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
像这样更改代码
public class main extends AppCompatActivity {
EditText txt;
Button check,save;
String ts ="new ";
public List<String> name ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt= (EditText) findViewById(R.id.editText);
check = (Button) findViewById(R.id.btn_conf);
save = (Button) findViewById(R.id.btn_sve);
name = new ArrayList<String>();
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(main.this, reciever.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)name);
intent.putExtra("BUNDLE",args);
startActivity(intent);
}
});
}
}
public类主活动{
编辑文本文本;
按钮检查,保存;
字符串ts=“新建”;
公开名单名称;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(EditText)findViewById(R.id.EditText);
检查=(按钮)findViewById(R.id.btn_conf);
保存=(按钮)findviewbyd(R.id.btn_sve);
name=新的ArrayList();
check.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
save.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(main.this,receiver.class);
Bundle args=新Bundle();
args.putSerializable(“ARRAYLIST”,(Serializable)名称);
意向。额外(“捆绑”,args);
星触觉(意向);
}
});
}
}
每次创建Arraylist的新对象时。
做下面这样的事情
public class main extends AppCompatActivity {
EditText txt;
Button check,save;
String ts ="new ";
public List<String> name=new ArrayList<>;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt= (EditText) findViewById(R.id.editText);
check = (Button) findViewById(R.id.btn_conf);
save = (Button) findViewById(R.id.btn_sve);
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// tmp.name.add(txt.getText().toString());
name.add(txt.getText().toString());
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(main.this, reciever.class);
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(Serializable)name);
intent.putExtra("BUNDLE",args);
startActivity(intent);
}
});
}
} `
public类主活动{
编辑文本文本;
按钮检查,保存;
字符串ts=“新建”;
公共列表名称=新的ArrayList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=(EditText)findViewById(R.id.EditText);
检查=(按钮)findViewById(R.id.btn_conf);
保存=(按钮)fi