这是我将人物对象添加到arraylist的活动,我计划将相同的arraylist带到另一个活动(editList.java)以显示相同的列表视图,但我不知道如何。我已经研究了这个主题,但只有如何将多个arraylist放入一个列表视图的帮助。请注意我对android编程很新。
people.java
public class people extends AppCompatActivity {
Button btnAdd;
Button btnDelete;
ListView lvPeople;
ArrayList<person> alPeople = new ArrayList<person>();
ArrayAdapter<person> aaPeople;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_people);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnDelete = (Button) findViewById(R.id.btnDelete);
lvPeople = (ListView) findViewById(R.id.lvPeople);
aaPeople = new ArrayAdapter<person>(this, android.R.layout.simple_list_item_1, alPeople);
lvPeople.setAdapter(aaPeople);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewDialog = inflater.inflate(R.layout.add_dialog, null);
final EditText etName = (EditText) viewDialog.findViewById(R.id.etName);
final EditText etAge = (EditText) viewDialog.findViewById(R.id.etAge);
final DatePicker dpBirthdate = (DatePicker) viewDialog.findViewById(R.id.dpBirthdate);
AlertDialog.Builder myBuilder = new AlertDialog.Builder(people.this);
myBuilder.setView(viewDialog);
myBuilder.setTitle("Add person to list");
myBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = etName.getText().toString();
String age = etAge.getText().toString();
int dpBirthdateDay = dpBirthdate.getDayOfMonth();
int dpBirthdateMonth = dpBirthdate.getMonth() + 1;
int dpBirthdateYear = dpBirthdate.getYear();
String birthday = Integer.toString(dpBirthdateDay) + "/" + Integer.toString(dpBirthdateMonth) + "/" + Integer.toString(dpBirthdateYear);
person person = new person();
person.setName(name);
person.setAge(age);
person.setExtbirthday(birthday);
person.setBirthday(Integer.toString(dpBirthdateDay));
person.setBirthmonth(Integer.toString(dpBirthdateMonth));
person.setBirthyear(Integer.toString(dpBirthdateYear));
alPeople.add(person);
aaPeople.notifyDataSetChanged();
Toast.makeText(people.this, "Person Added", Toast.LENGTH_LONG).show();
}
});
AlertDialog myDialog = myBuilder.create();
myDialog.show();
}
});
//this is code for list view item click
int personPos = 0;
lvPeople.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewDialog = inflater.inflate(R.layout.person_dialog, null);
final TextView tvName = (TextView) viewDialog.findViewById(R.id.tvName);
final TextView tvAge = (TextView) viewDialog.findViewById(R.id.tvAge);
final TextView tvBirthdate = (TextView) viewDialog.findViewById(R.id.tvBirthdate);
AlertDialog.Builder myBuilder = new AlertDialog.Builder(people.this);
myBuilder.setView(viewDialog);
myBuilder.setTitle("Person Info");
int personPos = position;
tvName.setText(alPeople.get(personPos).getName());
tvAge.setText(alPeople.get(personPos).getAge());
tvBirthdate.setText(alPeople.get(personPos).getExtbirthday());
myBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog myDialog = myBuilder.create();
myDialog.show();
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewDialog = inflater.inflate(R.layout.delete_dialog, null);
final EditText etIndex = (EditText) viewDialog.findViewById(R.id.etIndex);
AlertDialog.Builder myBuilder = new AlertDialog.Builder(people.this);
myBuilder.setView(viewDialog);
myBuilder.setTitle("Delete Person");
myBuilder.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int index = Integer.parseInt(etIndex.getText().toString());
if (alPeople.size() == 0) {
Toast.makeText(people.this, "There is nothing to delete", Toast.LENGTH_LONG).show();
} else {
alPeople.remove(index - 1);
aaPeople.notifyDataSetChanged();
}
}
});
myBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog myDialog = myBuilder.create();
myDialog.show();
}
});
}}
答案 0 :(得分:0)
创建一个新类,比如说 NewArray扩展ListView 并在此类中复制 ListView 的代码。
创建 NewArray 的实例,无论您想在哪里使用 ListView
答案 1 :(得分:0)