gpt4 book ai didi

java - 使用 Intent 发送和接收 Arraylist?安卓

转载 作者:行者123 更新时间:2023-11-30 02:40:26 26 4
gpt4 key购买 nike

我正在尝试创建一个国家列表,该列表将由用户在运行时添加。

我正在使用 intent & adapter 和 listview 来显示国家/地区。

当 Activity 开始“我的国家”用户点击按钮添加国家时,一个新的 Activity 将开始“添加国家”,我的问题是为什么我在列表中看不到任何国家?我发送和接收正确吗?MyCountries 的代码:

public class MyCountries extends Activity {



private ListView lv;
private ArrayAdapter<String> adapter;
private ArrayList<String>list;


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

//Button compute=(Button)findViewById(R.id.cancel);

lv=(ListView)findViewById(R.id.listView1);

list=new ArrayList<String>();

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);



Intent i = getIntent();

list = i.getStringArrayListExtra("country&year");

adapter.notifyDataSetChanged();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_countries, menu);
return true;
}
public void onClick(View v) {

Intent intent = new Intent(v.getContext(), AddCountry.class);
startActivityForResult(intent,1);
}

“AddCountry”代码

public class AddCountry extends Activity {
private EditText name;
private EditText year;
public String country_name;
public int visited_year;
public ArrayList<String>arr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_country);
name = (EditText) findViewById(R.id.country);

year = (EditText) findViewById(R.id.year);
arr= new ArrayList<String>();
Button button=(Button)findViewById(R.id.add);
}



public void onClick(View v) {

switch (v.getId()) {
case R.id.add:
//Toast.makeText(this, "Add was clicked", Toast.LENGTH_LONG).show();
//new activity
Intent sending = new Intent();

country_name = name.getText().toString();
visited_year = Integer.parseInt(year.getText().toString());

for(int i=0;i<arr.size();i++){
arr.add(country_name+""+visited_year);
//startActivity(sending);
}
sending.putStringArrayListExtra("country&year", arr);

}
}

最佳答案

您正在向适配器发送空列表:

list=new ArrayList<String>();// empty list

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);

//在初始化您的适配器之前从 Intent (到您的列表)获取数据,您不需要通知

  list = i.getStringArrayListExtra("country&year");

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter);

关于java - 使用 Intent 发送和接收 Arraylist?安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835078/

26 4 0