【发布时间】:2017-08-08 12:28:21
【问题描述】:
我有两个活动:主要和编辑。当我在列表视图中单击一个项目时,它将我带到编辑活动,它在其各自的文本视图中显示项目的详细信息(姓名、姓氏、单元格和电子邮件)。当我单击编辑按钮时,文本视图变得可编辑,当我单击保存按钮时,我需要更新主要活动中的列表视图。请提供代码,因为我还是个初学者。
我的主要课程的代码
public class MainActivity extends AppCompatActivity {
ArrayList<Integer> list = new ArrayList<>();
Button btnAdd = (Button) findViewById(R.id.btnAdd);
ListView lstInfo = (ListView) findViewById(R.id.lstInfo);
Button btnName = (Button) findViewById(R.id.btnName);
Button btnSurname = (Button) findViewById(R.id.btnSurname
);
Button btnEmail = (Button) findViewById(R.id.btnEmail);
Button btnDelete = (Button) findViewById(R.id.btnDelete);
final List<Contact> items = new ArrayList<Contact>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(MainActivity.this, "Select a contact to delete", Toast.LENGTH_SHORT).show();
setContentView(R.layout.activity_main);
// get views
// Button btnAdd = (Button) findViewById(R.id.btnAdd);
// ListView lstInfo = (ListView) findViewById(R.id.lstInfo);
// Button btnName = (Button) findViewById(R.id.btnName);
// Button btnSurname = (Button) findViewById(R.id.btnSurname);
// Button btnEmail = (Button) findViewById(R.id.btnEmail);
// Button btnDelete = (Button) findViewById(R.id.btnDelete);
//
// final List<Contact> items = new ArrayList<Contact>();
//Hard-coding contacts
items.add(new Contact("Sally", "Van Der Walt", "0766838275", "sally@gmail.com"));
items.add(new Contact("Sarah", "Smith", "0847852693", "sarah@gmail.com"));
items.add(new Contact("John", "Doe", "0823691478", "john@gmail.com"));
// create adapter to transform string items
final ContactAdapter adapter = new ContactAdapter(this, items);
//final ContactAdapter conAdapter = new ContactAdapter(this, items);
// attach adapter to list view
lstInfo.setAdapter(adapter);
// add more items when clicked
btnAdd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
adapter.add(new Contact("Name", "Surname", "Cell", "Email"));
Toast.makeText(MainActivity.this, "New contact has been added", Toast.LENGTH_SHORT).show();
}
});
//Delete the selected user - the selected user will appear in green
lstInfo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (list.size() >= 1)
for (int i = 0; i < list.size(); i++) {
if (position == list.get(i))
return;
}
Contact cur = items.get(position);
list.add(position);
cur.setSelected("(Selected)");
adapter.notifyDataSetChanged();
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i < list.size(); i++) {
items.remove(list.get(i).intValue());
}
adapter.notifyDataSetChanged();
list.clear();
Toast.makeText(MainActivity.this, "Contact has been deleted", Toast.LENGTH_SHORT).show();
}
});
//
// btnDelete.setOnItemClickListener(new Adapter.OnItemClickListener() {
// @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) {
// list.remove(position);
// }
// });
//
//Sorting using the adapters sort method
btnName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.sort(new Comparator<Contact>() {
@Override
public int compare(Contact left, Contact right) {
return left.firstName.compareTo(right.firstName);
}
});
}
});
btnSurname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.sort(new Comparator<Contact>() {
@Override
public int compare(Contact left, Contact right) {
return left.surname.compareTo(right.surname);
}
});
}
});
btnEmail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.sort(new Comparator<Contact>() {
@Override
public int compare(Contact left, Contact right) {
return left.email.compareTo(right.email);
}
});
}
});
lstInfo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String nameItem = items.get(position).getFirstName();
String surnameItem = items.get(position).getSurname();
String cellItem = items.get(position).getCellNumber();
String emailItem = items.get(position).getEmail();
Intent intent = new Intent(MainActivity.this, EditingActivity.class);
intent.putExtra("name", nameItem);
intent.putExtra("surname", surnameItem);
intent.putExtra("cell", cellItem);
intent.putExtra("email", emailItem);
//startActivity(intent);
startActivityForResult(intent, 2);
}
});
}
**Code for my editing class:**
public class EditingActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.edit_contact);
Intent intent = getIntent();
if (intent != null)
{
Bundle extras = intent.getExtras();
if (extras != null)
{
//Get the bundled values
String name = extras.getString("name");
String surname = extras.getString("surname");
String cell = extras.getString("cell");
String email = extras.getString("email");
//Display the values
TextView txtName = (TextView) findViewById(R.id.nameTV);
TextView txtSurname = (TextView) findViewById(R.id.surnameTV);
TextView txtCell = (TextView) findViewById(R.id.cellTV);
TextView txtEmail = (TextView) findViewById(R.id.emailTV);
txtName.setText(name);
txtSurname.setText(surname);
txtCell.setText(cell);
txtEmail.setText(email);
}
}
Button editBtn = (Button) findViewById(R.id.editBtn);
editBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView txtName = (TextView) findViewById(R.id.nameTV);
TextView txtSurname = (TextView) findViewById(R.id.surnameTV);
TextView txtCell = (TextView) findViewById(R.id.cellTV);
TextView txtEmail = (TextView) findViewById(R.id.emailTV);
txtName.setEnabled(true);
txtSurname.setEnabled(true);
txtCell.setEnabled(true);
txtEmail.setEnabled(true);
}
});
Button saveBtn = (Button) findViewById(R.id.saveBtn);
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
【问题讨论】:
-
发布你到目前为止所做的事情
-
我在上面加了:)
-
能贴出mainActivity的代码吗?您是如何将值更新到列表视图的?